matlab 找每行的第一个和最后一个非零数

 求解答 找每行的第一个和最后一个非零数 用matlab实现 很简单的一段代码 但是就是没有头绪

记得要考虑全是0的情况!!!


A=[0,0,5,3,5,7;
   2,3,0,5,7,8;
   0,0,0,0,0,0;
   0,0,0,9,8,0;
   0,0,0,1,0,0 ];

LogicA=(A~=0);

%第几行_左边最大数位置_左边最大数值_右边最大数位置_右边最大数值
Row_FirstPos_Value_LastPos_Value=[];

[rownum,colnum]=size(A);

for i=1:1:rownum
    temprow = A(i,:);
    temprowLogi =LogicA(i,:);
    tempJudge=any(temprowLogi);
    if(tempJudge==0) %全都是0
        Row_FirstPos_Value_LastPos_Value=[Row_FirstPos_Value_LastPos_Value;[i,nan,nan,nan,nan]];
    else %不全是0
        %从左往右 在逻辑矩阵找最大的1和位置
        [valueNeglect,posi1] = max(temprowLogi);
        %从左往右 最大的值
        value1 = temprow(posi1);
        
        %
        temprowLogi=fliplr(temprowLogi);
        
        %从右往左 在逻辑矩阵找最大的1和位置
        [valueNeglect,posi2] = max(temprowLogi);
        posi2 = colnum+1-posi2;
        %从右往左 最大的值
        value2 = temprow(posi2);
        Row_FirstPos_Value_LastPos_Value=[Row_FirstPos_Value_LastPos_Value;[i,posi1,value1,posi2,value2]];
        
        
    end
    
end



循环读取矩阵中每行的第一个和最后一个数据,然后进行判断,并输出相应的位置。