2016-02-05 87 views
1

我在MATLAB三个向量:排序在MATLAB中矢量

x=[2, 3, 2, 3, 3] 
y=[1, 5, 1, 5, 5] 
Q=[7, 8, 4, 6, 8] 

修饰的载体应该是

x=[2, 3] 
y=[1, 5] 
Q=[12, 22 ] 

这里的x,y表示坐标和Q取决于(X,Y的值)。

坐标正在重复,像(2,1)已经出现两次,那么我需要修改表示唯一坐标的矢量x和y并且将特定坐标的Q的值相加,例如, (2,1)已经出现两次并且这些坐标处的Q的值是7和5,那么对于修改的矢量,坐标(2,1)必须来过一次并对应于Q value 7+5=12,并且类似地对于(3,5) Q is 8+6+8=22

+0

你是说'7 + 4 = 11'吧?你的'5'从哪里来?我假设这是一个错字? – Dan

回答

5
[XY, ~, ic] = unique([x' y'],'rows') 
xu = XY(:,1).'; % The unique x you want 
yu = XY(:,2).'; % The unique y you want 
Qu = accumarray(ic,Q').'; 
+0

这正是我所寻找的。非常感谢!! –