MATLAB Function 次元について
显示 更早的评论
Simulink内でMATLAB Function ブロック使用して演算しています。
画像のようにMATLAB Functionに入力すると
エラー内容
インデックスが行列の次元を超えています。配列 z は空であるため有効なインデックスを持ちません。
のようにエラーが発生しシミュレーションが実行できません。
次に、コメントアウトされている方(薄く表示されているA)の数値を使用すると、シミュレーションが実行されます。
この違いの原因が分かりません。どちらも出力されるデータ型はdouble型でした。

9 个评论
Toshinobu Shintai
2020-1-7
入力した信号線の次元とMATLAB Function内でそれに対応した変数の次元が一致してないのではないでしょうか。以下を参考に確認してみてください。
また、モデルを添付してくださると答えやすくなります。
Shoumei
2020-1-7
zはMATLAB Function内の変数ですよね?
入力uの値には0.15かmが入ると思いますが、これらの値からMATLAB Function内で算出される値がzの配列サイズを超えているのでは?と推測します。
MATLAB Function内のコードを見ないと何とも判断できませんね。
s
2020-1-7
s
2020-1-7
Shoumei
2020-1-7
z = find(t_ppd>t_cr);
で解が見つからず、zが空行列になっているのだと思います。
MATLAB Functionにブレークポイントを張って、zが意図した値になっているかどうかデバッグしてみてください。
s
2020-1-8
Etsuo Maeda
2020-1-9
z = find(t_ppd>t_cr);
の一行前にブレークポイントを置いて
t_ppd>t_cr
の出力をコマンドウィンドウで確認してみてはどうでしょうか?
HTH
stozaki
2020-1-25
MATLAB Functionの入力引数は6つあります。一方、ブロックの入力ポートは1つなので、5つはパラメータという認識で宜しいでしょうか?
その場合、5つのパラメータはどの様な属性を設定されているのでしょうか? コードのデバッグを行う前に、前提として変数、パラメータの属性を明らかにして頂く必要があると思います。
もし、未定義のままですと、既定の属性設定のままなので、意図された動作と異なる可能性もあります。
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!