在Matlab中减去n行中相同列内的值

时间:2012-03-27 22:53:33

标签: matlab

我有一个有n行的列矩阵。我想要第2行和第1行之间的区别,然后第2行从第2行开始,依此类推。我应该有一个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因为它对行的限制。

3 个答案:

答案 0 :(得分:1)

使用diff()

答案 1 :(得分:1)

我并不完全清楚你在寻找什么,但听起来像diff可能会有所作为:

 mat = [513083
    513386
    513662
    513939
    514213
    514471
    514727
    514979
    515225];
K>> diff(mat)

ans =

   303
   276
   277
   274
   258
   256
   252
   246

答案 2 :(得分:0)

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

进行此操作
>> difference = maxtab(2:end) - maxtab(1:end-1);