相互连续减去数组中的所有元素

时间:2018-10-05 06:42:54

标签: matlab vectorization

正如问题所述: x = [1 2 3]

1 - 2 - 3 = -4 如何获得我的-4? 没有for循环。

diff不起作用。我不知道Matlab如何求和,但没有减法。

2 个答案:

答案 0 :(得分:1)

这是一个奇怪的操作,我怀疑是否有内置函数,但是简单的方法是:

2*x(1)-sum(x)

答案 1 :(得分:1)

另一种替代方法是使用点积:

y = x*[1 ; -ones(numel(x)-1, 1)];

假设x是行向量。

虽然在您的情况下可能不是最好的解决方案,但是如果您想要其他求和模式,例如带权重-只需用权重向量替换右边的向量即可。