コードを少し単純化しようとしていますが、小さな質問があります。させて
v = [1; 2; 3];
a1 = [4; 5; 6];
a2 = [7; 8; 9];
A = [a1, a2];
計算を目指しています
u = [v.*a1, v.*a2]
一度だけ使用することによってv
。これは可能ですか?
コードを少し単純化しようとしていますが、小さな質問があります。させて
v = [1; 2; 3];
a1 = [4; 5; 6];
a2 = [7; 8; 9];
A = [a1, a2];
計算を目指しています
u = [v.*a1, v.*a2]
一度だけ使用することによってv
。これは可能ですか?
はい、次のように を使用してこれを行うことができます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;
他にも方法はあると思いますが、ここでやめておきます...