「インデックスが配列​要素数を超えています​。」とエラーが出ます​。

222 ビュー (過去 30 日間)
大輝
大輝 2023 年 3 月 10 日
コメント済み: Hernia Baby 2023 年 3 月 16 日
Simscapeでプラントモデリングの接続を行なっていました。
solidworksからインポートしたアセンブリ同士を合体させたところ「インデックスが配列要素数を超えています。」とエラーが表示されました。
原因をご教授願います。

回答 (1 件)

Hernia Baby
Hernia Baby 2023 年 3 月 12 日
おそらく入出力の要素数(サイズ)があってません。
MATLABでのエラーでいうとこんな感じです。
a = zeros(1,10)
a = 1×10
0 0 0 0 0 0 0 0 0 0
size(a)
ans = 1×2
1 10
a(11)
Index exceeds the number of array elements. Index must not exceed 10.
サイズが10こまでなのに11番目なんかないぞ。
つまりインデックス(11)が要素数(10)を超えているぞって言ってます。
-----
デバッグ > 診断 > 情報のオーバーレイ > 信号 > 信号の次元
で次元数を表示してみてください。
もしくはDisplayブロックで確認するのもありです。
  2 件のコメント
大輝
大輝 2023 年 3 月 13 日
ご回答ありがとうございます。
次元数を確認したところ合っていないところがありました。
solidworksからインポートしたアセンブリ同士を合体させた際に参照先が混ざってしまうようなのですが,解決方法ご存じでしょうか。
Rigid Transformの値「smiData.RigidTransform(22).translation」が合体させたいアセンブリの二つにあるような状態です。
Hernia Baby
Hernia Baby 2023 年 3 月 16 日
信号がわかるのであればBus等で束ねたりするのはいかがでしょうか?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeApplications についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!