7

私はM x Nマトリックスを持っています。N各列にM x M行列を掛けたい。以下はこれをループで実行しますが、ベクトル化する方法がわかりません。

 u=repmat(sin(2*pi*f*t),[n 1]);
 W = rand(n);
 answer = size(u);
 for i=1:size(u,2)
   answer(:,i) = W*u(:,i);
 end
4

1 に答える 1

13

2 つの行列を乗算するだけです。

answer = W*u;

考えてみてください: ループの反復ごとに、行列にベクトルを掛けます。その演算の結果はベクトルであり、列 i の回答に保存します。行列の乗算も同様です。行列 u を形成する一連のベクトルによる行列 (W) の乗算として理解できます。

あなたのコードは良いので、ループを削除してください:)

于 2012-10-01T13:15:18.080 に答える