我有一个如下矩阵:
一个=
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
有什么建议么?
A您可以通过 MATLAB 函数使用 的元素的累积和cumsum来执行此计算:
knownvalue = 100;
firstrow = [5 2 10 14 11]
secondrow = fliplr(knownvalue - cumsum([0 firstrow(end:-1:2)]))
我相信你所追求的是:
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,因此可能更快。