Matlab-减去数组中的前一个加上差异
Matlab- Subtraction of previous in array plus addition of difference
所以如果我有一个矩阵 s;
s = [4;5;9;12;3]
我想计算一个条目和它之前的条目之间的差异加上之前的差异,这样我就可以得到
s = [ 4 0; 5 1; 9 5; 12 8; 3 -1]
我是 matlab 的新手。我知道需要一个 for 循环来遍历原始矩阵
您的结果的第二列似乎基本上是 cumsum(diff(s))
。然而,那不是 "the difference between an entry and its previous entry plus the previous difference";这是差异的累积和。
所以,如果你想要在第二列中的是差异的累计和:
result = [s [0; cumsum(diff(s))]];
在 matlab 中,你有很多直接使用矩阵的函数,这里提供的是 diff and cumsum 请访问 matlab 文档,以及手动连接的函数,如 horzcat 或 vertcat int 他的案例像这样得到你需要的东西:
>> s = [4;5;9;12;3]
s =
4
5
9
12
3
获取向量my_cum_diff,这是向量中元素之间的差异
my_cum_diff = [0; cumsum(diff(s))]
my_cum_diff = [0; cumsum(diff(s))]
my_cum_diff =
0
1
5
8
-1
最后连接两个向量
final_s=[s my_cum_diff]
final_s =
4 0
5 1
9 5
12 8
3 -1
所以如果我有一个矩阵 s;
s = [4;5;9;12;3]
我想计算一个条目和它之前的条目之间的差异加上之前的差异,这样我就可以得到
s = [ 4 0; 5 1; 9 5; 12 8; 3 -1]
我是 matlab 的新手。我知道需要一个 for 循环来遍历原始矩阵
您的结果的第二列似乎基本上是 cumsum(diff(s))
。然而,那不是 "the difference between an entry and its previous entry plus the previous difference";这是差异的累积和。
所以,如果你想要在第二列中的是差异的累计和:
result = [s [0; cumsum(diff(s))]];
在 matlab 中,你有很多直接使用矩阵的函数,这里提供的是 diff and cumsum 请访问 matlab 文档,以及手动连接的函数,如 horzcat 或 vertcat int 他的案例像这样得到你需要的东西:
>> s = [4;5;9;12;3]
s =
4
5
9
12
3
获取向量my_cum_diff,这是向量中元素之间的差异
my_cum_diff = [0; cumsum(diff(s))]
my_cum_diff = [0; cumsum(diff(s))]
my_cum_diff =
0
1
5
8
-1
最后连接两个向量
final_s=[s my_cum_diff]
final_s =
4 0
5 1
9 5
12 8
3 -1