A*B
Matlabでは、またはのような「素敵な」ベクトル操作を使用できることを知っていますA.*B
あなたが持っている場合
A=[2, 2];
B=[3, 1];
それはロジックです。使用できませんA*B
。A.*B
what isA[1]*B[1], A[2]*B[2]
と result isを使用できます[6, 2]
。
私が書いている多くの「スクリプト」では、何かを使用する必要があることがよくあります。その結果、次のようになります。
[6, 6;
2, 2]
したがって、基本的には forcycle を使用する必要があります (:):
C=zeros(2,2);
for i=1:size(A,1)
C(i,:)=A*B(i);
end
そして、どうすれば(可能であれば)forcyclesなしでこれを書き直すことができますか?出来ますか?この 2 つの要素の 2 つのベクトルは、必要なものを理解するにはおそらく悪いです。別の例:
A=[1,2,3,4,5]
B=[2,4]
結果:
[2,4,6,8,10;
4,8,12,16,20]
C(1:end < ====
GO BY ONE ELEMENT,:)=A*B(1:end <===== GO BY ONE ELEMENT)
--> 全体のベクトル A を取り、乗算します。 Bの最初の要素でそれを保存し、A列とB行を持つマトリックスの最初の行に保存します..
-->ベクトルA全体を取り、Bの2番目の要素で乗算し、A列を持つマトリックスの2番目の行に保存しますおよび B 行..
--> 全体のベクトル A を取得し、B の 3 番目の要素で乗算し、A 列と B 行を持つ行列の 3 番目の行に保存します..
--> ...
--> 全体のベクトル A を取得しますそれをBのLAST要素で乗算し、A列とB行を持つマトリックスのLAST行に保存します..