在matlab上: 我有一个矢量P. 我想将值P(k + 1) - P(k)存储在一个新的向量M中。我可以用for循环来做,但是有更高效的东西(我有一个巨大的向量)。
答案 0 :(得分:1)
正如Marcin所说,使用diff
。对于1D向量,diff(a)
。对于沿着暗淡1的差异,diff(a,[],1)
。沿着昏暗的2,使用diff(a,[],2)
。
答案 1 :(得分:1)
简单的解决方案
差值= V(2:n) - V(1:n-1)其中n是向量V的大小;
n =大小(V,1);
答案 2 :(得分:-1)
我认为制作矢量P可能更容易,然后将其复制并稍微移位。如果你制作向量Pk(你的常规P向量,但在上面填充),然后使Pk + 1(让我们称之为Pkp1)并在下面填充它。
Pk = [0 P];
Pkp1 = [P 0];
M = Pkp1 - Pk
这使它成为元素矩阵运算,它总是比循环更快。如果你的递归算法要求,你可以改为0填充。
我希望这对你有所帮助。 马丁