エディターでプログラ​ムを起動させると初期​に作成した変数が消え​て計算出来なくなりま​す。

12 ビュー (過去 30 日間)
Yushin Matsumoto
Yushin Matsumoto 2020 年 4 月 10 日
コメント済み: Kojiro Saito 2020 年 4 月 14 日
エディターでプログラムを起動させると初期に作成した変数が消えて、計算出来なくなります。
なにか初期設定が必要でしょうか?
※ワークステーションを新しくして今まで使ってたプログラムで発生しました。

採用された回答

Kojiro Saito
Kojiro Saito 2020 年 4 月 10 日
編集済み: Kojiro Saito 2020 年 4 月 13 日
2020/04/13 追記
FFTという名前の関数を実行しているため、ベースワークスペースで定義した変数がFFTの関数ワークスペースに引き継がれないために起きている事象のようです。
FFTの関数の入力引数に変数yを入力しても、ベースワークスペースからは関数ワークスペースの変数yが見えません。
y = 1;
FFT(y)
途中経過を見るためには、FFTの関数の9行目にブレークポイントを設定して、yの値が正しく入力されているか確認できます。
---
2020/04/10 回答
そのプログラムのどこかにclearclear allなどのコマンドが使われている可能性があります。
clearはワークスペースを消去するコマンドなので、初期に作成した変数が消えてしまいます。
  11 件のコメント
Yushin Matsumoto
Yushin Matsumoto 2020 年 4 月 14 日
お世話になります。
ご丁寧にありがとうございます。
確かにプログラムを作成している時は”Function”を付けずにスクリプトを実行していたと思います。
最後に”Function”を付けて完成させた様な記憶があります。
いろいろとご対応ありがとうございました。
Kojiro Saito
Kojiro Saito 2020 年 4 月 14 日
解決して良かったです。関数化するとその関数の中でのワークスペースの中で処理がされ、入力引数で渡さない限りベースワークスペースの変数が引き継がれないので、今回みたいに変数が見えなくなるということもありますが、その分メモリーの使用を減らせたり、処理を高速化できたり、再利用性が上がったりなどのメリットも多くあります。
スクリプトのほうが色々と試行錯誤がしやすいので、おっしゃるとおり、まずはスクリプトで作成して、うまくいったらfunctionを付けて関数化するというアプローチが良いと思います。
もしよろしければ回答の「採用」ボタンをポチッと押してもらえると嬉しいです。

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB 入門 についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!