如何使用matlab组合不同列中的数字
excel有一个方程式或函数,可以将数字组合到不同的列中,如下图所示。在matlab中有相同的数据,如何在不同的列中组合数字 具有一个d数据:如何使用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;
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我怎么做,先生?你看到我的结果了吗?