在没有循环的矩阵中查找列之间的差异

时间:2013-05-11 13:24:26

标签: matlab

我有一个迭代过程的结果,每次迭代的结果都放在彼此旁边,如下所示:

res = 
   43.7826   38.8460   38.6889   38.6912   38.6915
  107.0735   98.5577   98.1212   98.1170   98.1175
 -134.6218 -131.6938 -131.5378 -131.5352 -131.5352
 -105.9498 -103.1403 -102.9195 -102.9139 -102.9139

我想要做的是创建一个显示每列之间差异的矩阵,以及一个显示从一列到下一列的百分比变化的矩阵。

使用循环显然很简单,但是有没有循环的聪明方法(可能使用一些内置的Matlab函数)?

感谢。

1 个答案:

答案 0 :(得分:2)

命令diff(...)执行差异:

diff_res = diff(res,1,2)

在这种情况下,第二个维度(列)中第一个顺序的差异。 您可以计算百分比后:

per_res = diff_res(:,1:4)./res(:,1:4).*100