访问矩阵的每个索引而无需索引或使用for / while循环

时间:2014-01-28 12:34:12

标签: matlab

我需要编写一个接受参数n的函数,并返回一个n * n矩阵,每个条目作为i和j的函数

例如,我需要一个2 * 2条目,每个条目abs(i-j),因此该函数应返回以下矩阵:
[0,1; 1,0]

有没有办法在不使用for或while循环的情况下单独分配每个值?

2 个答案:

答案 0 :(得分:3)

使用ndgrid

n = 2;
[I, J] = ndgrid(1:n, 1:n)

abs(I-J)

答案 1 :(得分:2)

[i, j] = meshgrid(1:n);
out = abs(i - j);

编辑正如Dan指出的那样,这会导致i按列变化(即i的每列都有一个常量值);和j按行变化(每行是常量)。 ndgrid以相反的方式命令输出。