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,所以希望可以完善一点,谢谢。 展开
 我来答
qingningleyun
2015-05-25 · TA获得超过5852个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3017万
展开全部
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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式