我需要在Matlab中用元素i ^ j指定 n * m矩阵。 我是全新的,需要一些帮助。 刚刚找到了如何用i * j Elements填充它:
A= (1:n).'*(1:m).*ones(n,m);
你有什么想法吗?
答案 0 :(得分:3)
您可以使用singleton expansion
来利用bsxfun
A = bsxfun(@power, (1:n).', (1:m));
在最近的Matlab版本(R2016b以后)中,由于隐式单例扩展,您可以跳过bsxfun
并直接写
A = (1:n).'.^(1:m);
或者,对于更具可读性且适合初学者的版本,您可以使用ndgrid
明确制作两个大小相同的矩阵,然后应用.^
(element-wise power):
[ii, jj] = ndgrid(1:n, 1:m);
A = ii.^jj;
另一种方法是使用cumprod
重复乘法来取代能量:
A = cumprod(repmat((1:n).', 1, m), 2);