質問: インデックスが配列の次元を超えています。 添付したファイルのシミュレーションを行おうとしたのですが,以下のような警告文が表示されました。 c の 'int' 型で表せる値が必要です。代わりに 6.54516 が検出されました。 'untitled/matlab function' のエラー (line 11) y=-m*v(v0-v)/(v0*t); インデックスが配列の次元を超えています。インデックス値 6 が、配列 'v' の有効範囲 [1-1] を超えています。 'untitled/matlab function' のエラー (line 11) y=-m*v(v0-v)/(v0*t); インデックス値がvの1×1の範囲を超えないようにする,あるいは超えたものを無視して実行することは可能でしょうか。 このエラーの回避方法を教えていただきたいです。
回答: matlab function 内の記述で下記の式 y=-m*v(v0-v)/(v0*t); の v(v0-v) が、変数 v の配列として処理しようとして、配列要素番号が整数でないためにエラーが発生しています。単に v と (v0-v) の掛け算でしたら、下記のように記述します。 y=-m*v*(v0-v)/(v0*t);