simulinkでの行列の足し算
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
yuta maruyama
le 28 Juil 2020
Réponse apportée : Naoya
le 31 Juil 2020
simulink上でM行1列の行列(列ベクトル)信号と、M行N列の行列信号の足し算をしたいです。 例えば、 [1; 2]+[1 2 3; 4 5 6]=[2 3 4; 6 7 8] のような結果を得たいのですが、Sumブロックではうまくいきませんでした。 代替の手段はありませんか?
ただし、別で用意した行列を使って無理矢理次元を合わせるような手段は取りたくないです。 また、Matlab Functionのような処理に比較的時間のかかるブロックも使いたくないです。
0 commentaires
Réponse acceptée
Naoya
le 31 Juil 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を使って演算します。
<参考>
コード生成でサポートされない MATLAB 言語機能 -> 暗黙的な拡張
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Sources dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!