使用没有循环的条件初始化矩阵

时间:2015-11-12 16:29:02

标签: matlab loops matrix vectorization

我想创建一个索引为M的矩阵i,j,以便M(i,j)=i/j。我可以使用两个循环来完成这个但是有没有办法在不使用for循环的情况下执行此操作?

3 个答案:

答案 0 :(得分:5)

创建两个索引向量。制作一个垂直,一个水平。然后使用bsxfun()进行元素划分。

i = (1:9)'; % '
j = 1:5;

M = bsxfun(@rdivide,i,j);

答案 1 :(得分:2)

您可以使用矢量乘法,如下所示:

row=1:10;
col=1:10;
M=row'*(1./col);

答案 2 :(得分:0)

./表示法表示按元素操作。

[m,n]=ndgrid(1:9,1:5);
M = m./n;

(我不想使用ij,因为您引用sqrt(-1)很复杂。)