0
私はまたMATLAB:行列のアレイを形成し、各行列「要素」に対して操作を行う
v = [1 2 3];
ようなベクターを有するように
m1 = [1 2;3 4];
m2 = [2 7; 8 9];
m3 = [9 7; 8 91];
m = [m1 m2 m3]
m =
1 2 2 7 9 7
3 4 8 9 8 91
行列Mのアレイを有します私はvとmの間の演算でhが得られるようにします
h = [1*m1 2*m2 3*m3] = [h1 h2 h3];
私はこれを3次元h
の配列.3次元配列です。あるいは、より良い方法があるかもしれません。
単純な2行2列の行列Aをrand(2,2)
とします。 h
から 私はh1
h2
とh3
アウト(またはより良い任意の抽出を行っていない)を抽出し、A
な
1.
h1*A*h1'
h2*A*h2'
h3*A*h3'
と
2.
それに操作を実行したいですh1*h1', h2*h2', h3*h3'.
なぜ私は配列でこれをしたいですか?私は行列をたくさん持っているので、ベクトル化によってループを避けたい。
「m」2x2x3を2x6の上に重ねることをお勧めします。それはあなたの問題を解決するでしょうか?私はそれが助けるが、bsxfun(またはそのようなもの)のコマンドを見ているか分からない。あなたの乗算のためにforループを過小評価してはいけませんが、ベクトル化するのはいつも楽しいです;) – chessofnerd