2
我想摆脱矩阵的每一行中的前导零,但限制它一次删除一个零。MATLAB - 摆脱每行矩阵中的前导零,一次一个?
这是我目前的解决方案,但有没有更简单的方法呢?
a = [ 0 0 0 0 0 0 0 0 0 0
0 0 5 2 3 4 0 0 0 0
0 0 0 1 2 3 4 0 0 0
0 0 1 2 3 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 ]
b=zeros(size(a));
for j=1:size(a,2)
for i=1:size(a,1)
temp=find(a(i,:),1,'first');
candelete=min(2,temp);
b(i,1:end-candelete+1)=a(i,candelete:end);
end
a=b
end
编辑: 我想打印每一次迭代,从而使第一输出仅具有第一前导零删除:
0 0 0 0 0 0 0 0 0 0
0 5 2 3 4 0 0 0 0 0
0 0 1 2 3 4 0 0 0 0
0 1 2 3 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
第二将有2个0去掉,等上...
谢谢,但有没有办法让它打印的矩阵只有第一个前导零被删除?我希望它能够打印每一个迭代,直到您的解决方案。 – RootFAIL
哦,我明白了:a(i,:) = circshift(a(i,:),max(1-startIndex(i), - 1)) – RootFAIL
@RootFAIL:我想我的更新答案是寻找。 – gnovice