Matlab怎么把矩阵中的0元素删除,产生一个新的矩阵。
有矩阵A=[1020340;0102030;0001204];怎么把矩阵中的0元素删除,产生一个新的矩阵?元素不够,在后面用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,所以希望可以完善一点,谢谢。
展开
1个回答
展开全部
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询