3

次のようなマトリックスがあります。

A =

 5     2    10    14    11

このデータを使用して追加の行を作成しようとしています。第 5 列、第 2 行の要素は定数であり、既知です: 100

上記の行から減算することで、これらの値を挿入しようとしています

B =

63    65    75    89   100

例: 100-11 = 89. 89-14=75

最終的に次のように指定します。

[A;B]

ans =

 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 への呼び出しが 1 つ少なくて済むため、おそらく高速です。

于 2012-09-20T02:27:47.437 に答える