matlab中的坐标值

the values of coordinates in matlab

如果我有矩阵

s = [ 0         0.4000    0.5000    0.6000    0.9000
      0.4000         0    0.3000    0.4000    0.5000
      0.5000    0.3000         0    0.5000    0.8000
      0.6000    0.4000    0.5000         0    0.6000
      0.9000    0.5000    0.8000    0.6000         0];

coordinates = [1 2; 1 3; 2 4]

然后我希望先前坐标的值等于零。即 s(1,2),s(2,1),s(1,3)s(3,1),s(2,4),s(4,2) 等于 0 即我想要这个结果

0         0         0         0.6000    0.9000
0         0         0.3000    0         0.5000
0         0.3000         0    0.5000    0.8000
0.6000    0         0.5000         0    0.6000
0.9000    0.5000    0.8000    0.6000         0` 

这似乎是你想要的。你只需要使用 sub2ind:

s(sub2ind(size(s), coordinates(:,1), coordinates(:,2))) = 0; %// make these entries 0
s(sub2ind(size(s), coordinates(:,2), coordinates(:,1))) = 0; %// and symmetric entries too