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'函数 –