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
如果我有矩阵
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