simulinkでの行列の足し算

13 visualizzazioni (ultimi 30 giorni)
yuta maruyama
yuta maruyama il 28 Lug 2020
Risposto: Naoya il 31 Lug 2020
simulink上でM行1列の行列(列ベクトル)信号と、M行N列の行列信号の足し算をしたいです。 例えば、 [1; 2]+[1 2 3; 4 5 6]=[2 3 4; 6 7 8] のような結果を得たいのですが、Sumブロックではうまくいきませんでした。 代替の手段はありませんか?
ただし、別で用意した行列を使って無理矢理次元を合わせるような手段は取りたくないです。 また、Matlab Functionのような処理に比較的時間のかかるブロックも使いたくないです。

Risposta accettata

Naoya
Naoya il 31 Lug 2020
Simulinkでは、 MATLABプログラミングでサポートされる暗黙的拡張機能 (片方がベクトルでもう片方が行列の2変数に対して演算を行う場合に、ベクトル側を行列に暗黙的に拡張してから行列演算する機能) をサポートしておりません。
ご面倒ですが以下2方法についてご検討いただけますでしょうか?
(1の方がシンプルだと思います)
1. 列ベクトル と ones(1,n) を行列積して事前に明示的に行列へ拡張する
[1;2] * [1,1,1] で [1 1 1;2 2 2] に拡張できますので、その後 [1 2 3;4 5 6] と要素ごとの足し算をします。
2. MATLAB Function を使う。
但し、MATLAB Function を使っても 暗黙的拡張をサポートしていないので、 bsxfunを使って演算します。
<参考>

Più risposte (0)

Categorie

Scopri di più su Simulink in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!