Matlab怎么把矩阵中的0元素删除,产生一个新的矩阵。

有矩阵A=[1 0 2 0 3 4 0; 0 1 0 2 0 3 0; 0 0 0 1 2 0 4 ];怎么把矩阵中的0元素删除,产生一个新的矩阵?元素不够,在后面用0补齐也行。这个矩阵是我举例子的,我真正要处理的矩阵是60*60,所以希望可以完善一点,谢谢。

A = [1 0 2 0 3 4 0; 0 1 0 2 0 3 0; 0 0 0 1 2 0 4 ];
[m,n] = size(A);
% 求每行最长非零元素的长度
maxn = max(arrayfun(@(x) sum(A(x,:)~=0),1:m));
R = zeros(m,maxn);
for p = 1:m
    a = A(p,:);
    a(a==0) = [];
    w = length(a);
    R(p,1:w) = a;
end
R

R =


     1     2     3     4

     1     2     3     0

     1     2     4     0

温馨提示:答案为网友推荐,仅供参考