我有这个矩阵:
aux333=[2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 70 ;
3 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 208;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
2 0 ;
0 37 ;
0 0 ;
0 0 ;
0 0 ;
0 0 ]
我想编写一些代码,如果第一列与零不同,则新数组(aux3final
)将收到aux333
的第二列。
我试着这样写:
for j=1:length(aux333)
if aux333(j,1)==2 | aux333(j,1)==3
aux3final(j)=aux333(j,2);%%aux3final tá com dimensão 296, devia estar com dimensão 69
end
但这根本不起作用。怎么办?
原始代码比我发布的代码更大,可能会有一些变量影响某些东西。
答案 0 :(得分:1)
正如Sardar所指出的那样,目前尚不清楚最终的矢量(aux3final)是否应该具有
1)与输入矢量(aux333)的长度相同
%find entries of interest
flg_valid=aux333(:,1)>0;
%alloc output
aux3final=zeros(size(aux333,1),1);
%copy index depending
aux3final(flg_valid)=aux333(flg_valid,2);
或
2)它具有感兴趣的条目的长度
%extract only entries of interest
aux3final=aux333(flg_valid,2);