MATLAB 如何删除二维数组特定的行数?

k1_max=0;
k2_max=0;
k3_max=2;
XXX=zeros(30,6)
INDEX=0;
for III=1:k1_max+1
for JJJ=1:k2_max+1
for KKK=1:k3_max+1
for LLL=1:KKK
INDEX=INDEX+1;
XXX(INDEX,1)=3;
XXX(INDEX,2)=III-1;
XXX(INDEX,3)=JJJ-1;
XXX(INDEX,4)=KKK-1;
XXX(INDEX,5)=LLL-1;
end
end
end
end

最后的结果中。二维数组XXX剩下的几行全是零,我想把这些全为0的行数删除。只保留非0的行数,如何做?

for i=1:30
if (XXX(i,1)==0)&(XXX(i,2)==0)&(XXX(i,3)==0)&(XXX(i,4)==0)&(XXX(i,5)==0)&(XXX(i,6)==0)
m(i)=i;
end
end
m(m==0)=[];%%把m中的零元素去掉
XXX(m,:)=[]%%m对应的是行,所以直接去掉行即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-28
for i=1:30
if sum(xxx(i,:))==0%判断是否全为零
xxx(i,:)=[];%全为了行置为空 即去掉了该行
end
end
第2个回答  2011-04-25
for循环+if和0比较是去除,不是保留~~~~~~~~
第3个回答  2011-04-25
function a=qudiao(a)
[m,n]=find(a);
i=1;
while i<=size(a,1)
m1=find(m==i);
if isempty(m1)==1
a(i,:)=[];
i=i-1;
end
i=i+1;
end
相似回答