【问题标题】:Finding the difference between columns in matrix without loops在没有循环的情况下查找矩阵中列之间的差异
【发布时间】:2013-05-11 13:24:26
【问题描述】:

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

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 函数)?

谢谢。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    命令 diff(...) 执行区别:

    diff_res = diff(res,1,2)
    

    在这种情况下,第二维(列)中的一阶差异。 在你可以计算百分比之后:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2019-12-06
      • 2016-01-14
      相关资源
      最近更新 更多