3

我有一个如下矩阵:

一个=

 5     2    10    14    11

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

通过从上面的行中减去,我希望插入这些值

乙 =

63    65    75    89   100

例如 100-11 = 89。89-14=75

最终给出以下内容:

[A;B]

答案=

 5     2    10    14    11
63    65    75    89   100

有什么建议么?

4

2 回答 2

6

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

knownvalue = 100; 
firstrow = [5     2    10    14    11]
secondrow = fliplr(knownvalue  - cumsum([0 firstrow(end:-1:2)]))
于 2012-09-20T02:24:00.923 回答
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,因此可能更快。

于 2012-09-20T02:27:47.437 回答