OutportブロックからsimOutコマンドを使ってワークスペースから値取得すると計算過程でエラーが出ます
Show older comments
OutportブロックからsimOutコマンドを使ってワークスペースから値を取得すると計算でできずに 下記のようなエラーが出ます。
エラー: ^ 入力はスカラーと正方行列でなければなりません。 POWER を要素ごとに計算するには、代わりに POWER (.^) を使用してください。
^ の部分を .^ にも変えましたが結果は変わりませんでした。 ワークスペースに書き出される行列がそろっていないために 計算できていないと思われるですが、エラーの意味の解釈はあっているでしょうか。
また、ワークスペースにOutportブロックから値を送る時に 例えば、 10×1 の行列を 1×10 の行列にする方法が分かりません。
4 Comments
Kei Otsuka
on 8 Nov 2017
simOutというのはT Sさんが作成された関数でしょうか。それともシミュレーション結果を含むオブジェクトか何かでしょうか?
実際に動かすことの出来るモデルも添付していただくと、適切な回答が得られる可能性が高くなると思いますよ。
また、行列の転置(10x1 > 1x10変換)はMath Functionブロックで可能ですので、出力端子につなげてみてください。
Kei Otsuka
on 9 Nov 2017
simOutはシミュレーション結果が含まれるオブジェクトですね。
行列bが1x101、cが201x1の場合、 行列積なので片方だけ転置してもエラーになります。b、c双方転置すれば計算はできますが、それがT Sさんが期待されている結果かどうかは判断できません。
b = randi(100,1,101);
c = randi(100,201,1);
a = b*c; %エラー
a = b'*c'; %これはOK
try,catch構文等を使ってエラー発生時の値を正確に把握してみては如何でしょうか。
T S
on 10 Nov 2017
Accepted Answer
More Answers (0)
Categories
Find more on Sinks in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!