第2个回答 2015-07-06
a=[1 0 ;1 0; 3 5;0 2]
[M,N]=size(a);
flag=zeros(M,N) %记录非零值所在位置,如果某行某列的值非零,则置位为1
aResult={}; %保存非零值的cell结构体
for row=1:M
[b c]=sort(a(row,:))
d=find(b==0)
b(d)=[]
c(d)=[]
lengthb=length(b);
for i=1:lengthb
aResult{row,i}=b(i);
end
flag(row,c)=1;
end
a =
1 0
1 0
3 5
0 2
aResult
aResult =
[1] []
[1] []
[3] [5]
[2] []
flag
flag =
1 0
1 0
1 1
0 1
不过代码缩进后可能会乱码