24小时热门版块排行榜    

查看: 574  |  回复: 3

superyin521

新虫 (初入文坛)

[求助] 求助!!数组的整理 已有2人参与

菜鸟一枚,请求帮助
如下数组
A=
     1  0  3
     2  1  4
     1  0  0
     3  4  5
     2  7  8
     1  6  2
第一列是个编号,后面两列是对应的数据,我想把编号相同的数据叠加,即得到如下的数组
B=
    1  6  5
    2  8  12
    3  4  5
想了好久也没想明白如何实现,求助各位!!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

catishve

银虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
A=[ 1  0  3;  2  1  4;  1  0  0;   3  4  5;  2  7  8 ;  1  6  2];
[hang,lie]=size(A);
j=0;
for k=1:10
  for i=1:hang
         if A(i,1)==(k-1)
           ?????????
             j=j+1;
         end
  end
end
   时间有点匆忙,来不及把程序写完, 我的大体思路是这样的: 首先求出矩阵的行数和列数 ,然后循环找出首数字相同的各行,之后再 把相对应的数值相加, 然后再表示成我们需要的矩阵,。
希望对你有帮助
2楼2014-12-07 08:58:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

asmeng

金虫 (正式写手)

【答案】应助回帖

A=[ 1  0  3;  2  1  4;  1  0  0;   3  4  5;  2  7  8 ;  1  6  2];
[m,n] = size(A);
B=zeros(n,n); %用来装结果的
B(:,1)=[1:n]';
for i = 1:m
  for j = 2:n
    for k = 1:n
      if A(i,1)==k
        B(k,j)=B(k,j)+A(i,j);
      end
    end
  end
end
B
3楼2014-12-08 09:53:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

superyin521

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by catishve at 2014-12-07 08:58:36
A=;
=size(A);
j=0;
for k=1:10
  for i=1:hang
         if A(i,1)==(k-1)
           ?????????
             j=j+1;
         end
  end
end
   时间有点匆忙,来不及把程序写完, 我的大体思路是这 ...

非常感谢,发现用accumarray这个函数就可以解决问题
4楼2014-12-09 09:38:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 superyin521 的主题更新
信息提示
请填处理意见