我有一个如下矩阵:
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
有什么建议吗?
答案 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的调用,所以可能更快。