在Matlab中将矩阵中的元素i,j设置为i ^ j

时间:2017-04-23 15:00:48

标签: arrays matlab matrix

我需要在Matlab中用元素i ^ j指定 n * m矩阵。 我是全新的,需要一些帮助。 刚刚找到了如何用i * j Elements填充它:

A= (1:n).'*(1:m).*ones(n,m);

你有什么想法吗?

1 个答案:

答案 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);