A(:,:,i) = eye(n)*i
のようなN行N行3列の行列A
を生成したいとします。 forループを使用せずに(つまりベクトル化して)これをどうすればできますか?これを行うにはMATLABでforループなしでこの3Dマトリクスをどのように生成できますか?
3
A
答えて
0
あなたはBSXFUN前にMATLABの古いバージョンを導入している場合は、このオプション(@Jonasずつと同じ答えを)考えてみます。
N = 4; M = 3;
A = repmat(eye(N),[1 1 M]) .* repmat(permute(1:M,[3 1 2]),[N N 1])
A(:,:,1) =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
A(:,:,2) =
2 0 0 0
0 2 0 0
0 0 2 0
0 0 0 2
A(:,:,3) =
3 0 0 0
0 3 0 0
0 0 3 0
0 0 0 3
1
1
別のオプションは、1,2,3
の1行1行3列の配列と単位行列を乗じ、BSXFUNを使用することです
>> bsxfun(@times,eye(4),permute(1:3,[3,1,2]))
ans(:,:,1) =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
ans(:,:,2) =
2 0 0 0
0 2 0 0
0 0 2 0
0 0 0 2
ans(:,:,3) =
3 0 0 0
0 3 0 0
0 0 3 0
0 0 0 3
関連する問題
- 1. MATLABマトリクスを使用した3Dでのいくつかのサーフェスプロット
- 2. matlabを使用して3dマトリクスを4dマトリクスに変換する
- 3. Matlabでこれらのループをどのようにベクトル化できますか?
- 4. Pouchdb forループでどのようにクエリできますか?
- 5. このハッシュはどのように生成できますか?
- 6. どのようにしてこの種のforループをbashシェルスクリプトで書くことができますか?
- 7. マトリクス乗算、sum()、またはforループをMatlabで使用する場合の経験則がありますか?
- 8. forループでブレークはどのように機能しますか?
- 9. なぜArrayList上のforループは、IntelliJで "for文がループしない"という警告を生成します
- 10. MATLABでデュアルトーン周波数をどのように生成しますか?
- 11. forループでソースコードを生成
- 12. forループでXqueryをどのように追加できますか?
- 13. forループで作成した特定のボタンをどのようにターゲットできますか?
- 14. このコードをRacket/Schemeでどのように生成できますか?
- 15. MATLAB:3Dマトリクスのすべてのスライスを整形する
- 16. これを単純なPHP forループでどのように出力できますか?
- 17. このコードはどのようにしてセグメンテーションフォルトを生成できますか?
- 18. ループなしでこれをどのように書き直しますか?
- 19. forループの中でどのようにmongoose関数を使うことができますか?
- 20. 棒グラフはどのようにしてmatlabで作成できますか?
- 21. なぜこのforループでNullPointerExceptionが発生しますか?ここ
- 22. forEach対forループ? forループはうまくいくようですが、forEachではできません。どうして?誰か説明できますか?
- 23. matlabの3dマトリクスの全0行をすべて削除します
- 24. forループの出力をどのように文字列化できますか?
- 25. sparkとscalaのforループをどのように並列化できますか?
- 26. この3Dグリッドベースのレンダリングシステムをどのように高速化できますか?
- 27. MATLAB:ドットプロダクトのマトリクス
- 28. これはどのようにMATLABで行うのですか?
- 29. どのようなボディでもこのループを手助けできますか?
- 30. 次の画像のような3Dグラフィックスをどのようにレンダリングできますか? 3D水彩レンダリング
bsxfunはmatlab7.3.0(r2006b)には含まれていませんが、正しいですか? –
@ Quiang Li:r2007aで最初に登場したようです。 – Jonas