0

次のように2つの行列があるとします。

A = [1 0.2 1; 0.4 0.4 1; 1 0.6 1; 0.9 0.7 1];

B = [33 75 250; 6 34 98; 55 3 4; 153 66 30];

whereCの値を含む新しいマトリックスを作成するとします。BA=1

私はmatlabこれのために次のことができると思います:

C = B(A==1);

しかし、他のセルを元の値で埋めるにはどうすればよいでしょうか。この場合、対応する値が含まれる要素を含むAベクトルを取得するだけです。そして、私は同じ次元を持ちたいのですが、その元の値は値を持つ代わりに等しくありませんBA=1CBA10

4

2 に答える 2

1

はい、次のようにできます。

C= A.*(A~=1)+B.*(A==1)

これにより、次のことが得られます。

C =

33.0000    0.2000  250.0000
0.4000    0.4000   98.0000
55.0000    0.6000    4.0000
0.9000    0.7000   30.0000
于 2013-03-23T18:23:57.293 に答える
0

C will have to be initialized anyways, so let's initialize it to A as in C = A;. Then, MATLAB allows you to index the left-hand side as in C(A==1) = B(A==1); to replace all elements in C by those in B for which A == 1. All other elements will stay the same.

于 2013-03-23T18:28:49.497 に答える