2

コードを少し単純化しようとしていますが、小さな質問があります。させて

v  = [1; 2; 3];
a1 = [4; 5; 6];
a2 = [7; 8; 9];
A  = [a1, a2];

計算を目指しています

u = [v.*a1, v.*a2]

一度だけ使用することによってv。これは可能ですか?

4

1 に答える 1

7

はい、次のように を使用してこれを行うことができますbsxfun

u = bsxfun(@times,A,v);

またはまた使用してrepmat

u= repmat(v,[1 2]).*A;

またはまた使用してkron

u= kron(v,[1 1]).*A;

または最後に、行列の乗算のみを使用します。

u = v*[1 1].*A;

他にも方法はあると思いますが、ここでやめておきます...

于 2013-01-26T00:43:55.213 に答える