在Matlab中合并数组元素

时间:2012-10-24 17:44:47

标签: arrays matlab

假设x是一个数组[x1, x2, x3, x4, x5],我们希望合并x2x4。这是通过将它们的总和放在数组中并从数组中删除x2x4来完成的。输出数组应如下所示:[x1, x2+x4, x3, x5]

以下是在Matlab中执行此操作的一种方法:

tmp = x(2) + x(4);
x(2) = tmp;
x(4) = tmp;
[m,n] = unique(x,'first'); 
x(sort(n))

只要数组中没有重复项,此方法就可以正常工作。有没有聪明的Matlab方法为任何x做这个,而不是在合并值之后求助于循环和数组元素的移位?

1 个答案:

答案 0 :(得分:1)

如果你想改变这个

x = [x(1) x(2) x(3) ... x(i)... x(j)... x(n)]

进入这个

x = [x(1) x(2) x(3) ... x(i)+x(j) ... **... x(n)]

其中**为空且新x为n-1个元素长,那么你应该这样做:

x(i) = x(i)+x(j);
x(j) = [];

没有tmp,没有排序也没有唯一。