如何使用matlab组合不同列中的数字

如何使用matlab组合不同列中的数字,matlab,Matlab,excel有一个方程式或函数,可以将数字组合到不同的列中,如下图所示。在matlab中有相同的数据,如何在不同的列中组合数字 具有一个d数据: a b c d 1 1 1 3 2 1 0 5 1 2 5 30 3 4 1 26 -1 1 1 3 因为111和-111有相同的d值,所以我合并它,使第一列中的第一个单元格变成111,-111,它们的d变成6,因为我把它加起来,所以matlab能做到吗?谢谢 a=[1 1 1 3;

excel有一个方程式或函数,可以将数字组合到不同的列中,如下图所示。在matlab中有相同的数据,如何在不同的列中组合数字

具有一个d数据:

a   b   c   d
1   1   1   3
2   1   0   5
1   2   5   30
3   4   1   26
-1  1   1   3
因为111和-111有相同的d值,所以我合并它,使第一列中的第一个单元格变成111,-111,它们的d变成6,因为我把它加起来,所以matlab能做到吗?谢谢

a=[1 1 1 3;2 1 0 5; 1 2 5 30; 3 4 1 26; -1 1 1 3]

len=size(a);
x2=[]

for i=1:len(1)
s=num2str(a(i,1:len(2)-1));
s=s(s~=' ');
x2(i,:)=[str2num(s) (a(i,len(2)))];


end
结果:

x2 =

   111     3
   210     5
   125    30
   341    26
  -111     3
ind =
     1
     5
现在查找重复索引:

u=unique(x2(:,2));
n=histc(x2(:,2),u);
ind=find(x2(:,2)==u(n>1))
结果:

x2 =

   111     3
   210     5
   125    30
   341    26
  -111     3
ind =
     1
     5
现在可以求和并用:

xx=x2(ind,:)

ss=sum(xx(:,2));

s=num2str(xx(:,1)');
s=strrep(s, ' ', ',')

x2(min(ind),2) = ss;

x2(ind(ind~=min(ind)),:) = []

C = num2cell(x2);

C(min(ind),1) = cellstr(s)
最终结果是:

C = 

'111,-111'    [ 6]
[     210]    [ 5]
[     125]    [30]
[     341]    [26]

那么,当有两列或更多列具有负系数时会发生什么情况呢?假设a=-1,b=-2,c=3。当你以abc格式将这些字符串组合在一起时会发生什么?它变成了-1-23,位于一个单元格中,因此你希望有一个字符串的单元格数组,所有字符串都以d列为键连接在一起?是的,sirOh,这很简单。给我几分钟写一个答案。如果我有mxn数组呢?这个的通用代码是什么?感谢111和-111没有组合我找到了x2中的列2组合的指数,现在你可以求和组合111,-111我怎么做,先生?你看到我的结果了吗?