【问题标题】:Subtract values within same column of n rows in Matlab在Matlab中减去n行同一列中的值
【发布时间】:2012-03-27 22:53:32
【问题描述】:

我有一个 n 行的列矩阵。我想要第 2 行和第 1 行之间的差异,然后是第 2 行中的第 3 行,依此类推。我应该有一个包含 n-1 行的新矩阵。我正在使用 Matlab。

    513083
    513386
    513662
    513939
    514213
    514471
    514727
    514979
    515225

我试过这个:for x = 1:(numel(maxtab(:,1))-1) difference = maxtab(x+1,1) - maxtab(x,1); end 但我没有得到矩阵。我想避免 for 循环,因为它们会减慢进程。有什么建议么。由于 Excel 对行的限制,我试图取消它。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    使用diff()

    【讨论】:

    • 谢谢 - 我认为应该有一个内置函数
    【解决方案2】:

    我并不完全清楚你在寻找什么,但听起来diff 可能会成功:

     mat = [513083
        513386
        513662
        513939
        514213
        514471
        514727
        514979
        515225];
    K>> diff(mat)
    
    ans =
    
       303
       276
       277
       274
       258
       256
       252
       246
    

    【讨论】:

      【解决方案3】:

      虽然diff 是您完成这项任务的自然选择,但您也可以“手动”完成

      >> difference = maxtab(2:end) - maxtab(1:end-1);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多