从上面的行中减去元素以创建新行(Matlab)

时间:2012-09-20 02:07:28

标签: matlab matrix

我有一个如下矩阵:

A =

 5     2    10    14    11

我希望使用这些数据创建一个额外的行。第五列第二行中的元素是常量且已知:100

从上面的行中减去我想要插入这些值

B =

63    65    75    89   100

E.g。 100-11 = 89. 89-14 = 75

最终提供以下内容:

[A; B]

ans =

 5     2    10    14    11
63    65    75    89   100

有什么建议吗?

2 个答案:

答案 0 :(得分:6)

您可以通过MATLAB函数A使用cumsum元素的累积求和来执行此计算:

knownvalue = 100; 
firstrow = [5     2    10    14    11]
secondrow = fliplr(knownvalue  - cumsum([0 firstrow(end:-1:2)]))

答案 1 :(得分:3)

我相信你所追求的是:

A = [5, 2, 10, 14, 11];
Soln = [A; 100 * ones(1, length(A))];
Soln(2, 1:end - 1) = 100 - fliplr(cumsum(fliplr(A(2:end))));

编辑:可能会使用cjh的解决方案(+1为此)。它需要少一次对fliplr的调用,所以可能更快。