2
我需要在Matlab中指定一個帶有元素i^j的n×m矩陣。 我是完全新的在這和需要一些幫助。 剛剛找到如何來填補它與我*∫元素:將矩陣中的元素i,j設置爲Matlab中的i^j
A= (1:n).'*(1:m).*ones(n,m);
你有什麼想法?
我需要在Matlab中指定一個帶有元素i^j的n×m矩陣。 我是完全新的在這和需要一些幫助。 剛剛找到如何來填補它與我*∫元素:將矩陣中的元素i,j設置爲Matlab中的i^j
A= (1:n).'*(1:m).*ones(n,m);
你有什麼想法?
您可以利用singleton expansion,使用bsxfun
:
A = bsxfun(@power, (1:n).', (1:m));
在最近的Matlab的版本(R2016b起),由於隱性單擴展,你可以跳過bsxfun
和直接寫
A = (1:n).'.^(1:m);
或者,對於更易讀易用的初學者版本,您可以使用明確製作兩個相同大小的矩陣10,然後應用.^
(element-wise power):
[ii, jj] = ndgrid(1:n, 1:m);
A = ii.^jj;
另一種方法是使用cumprod
通過反覆乘更換電源:
A = cumprod(repmat((1:n).', 1, m), 2);
非常感謝! –
你知道如何實施: ** A_ {i,j} = 1,如果i = j + 1或i = j-1(0,否則)** 我可以用'bsxfun @eq'? –
你可以用'bsxfun(@minus,...)'來實現,我想你想要的是'abs(bsxfun(@minus,(1:n)。',(1:m)) )== 1',檢查'diag'函數 –