Matlab 表示矩阵中的索引

Matlab 表示矩阵中的索引,matlab,Matlab,我有两个矩阵U,V代表我的矩形的所有坐标。 如果v~=0,我需要检查所有坐标(u,v),并将矩阵T中特定(u,v)坐标的值更改为1,但我不能将(u,v)更改为整数,bc其矩阵.. 有什么想法吗 M = [3,5,10,15,20,25,30,35,40]; [U,V] = meshgrid (0:1:M(1)-1,0:1:M(1)-1); T = -4*eye((M(1)^2)); W = -1*zeros(M(1),1); if V~=0 T(U,V)=1 最简单的方法是使用ma

我有两个矩阵U,V代表我的矩形的所有坐标。
如果v~=0,我需要检查所有坐标(u,v),并将矩阵T中特定(u,v)坐标的值更改为1,但我不能将(u,v)更改为整数,bc其矩阵..
有什么想法吗

M = [3,5,10,15,20,25,30,35,40];

[U,V] = meshgrid (0:1:M(1)-1,0:1:M(1)-1);

T = -4*eye((M(1)^2));
W = -1*zeros(M(1),1);
if V~=0
    T(U,V)=1

最简单的方法是使用matlab极其强大的逻辑索引
T(V~=0)=1

,在此代码中,第一行的V始终为零,其他所有行的V始终为非零。因此,您可以简单地使用
T(2:end,:)=1
,但是在一般情况下,您可以使用
T(V~=0)=1
当U==0时,您也无法更改。所以,试试这个-
vind=U(:)&V(:);T(sub2ind)(size(T),U(vind),V(vind))=1 ;