我需要编写一个接受参数n的函数,并返回一个n * n矩阵,每个条目作为i和j的函数
例如,我需要一个2 * 2条目,每个条目abs(i-j),因此该函数应返回以下矩阵:
[0,1; 1,0]
有没有办法在不使用for或while循环的情况下单独分配每个值?
答案 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
以相反的方式命令输出。