
MATLABプログラミングについて質問です。
毎回同じフォーマットの実験データが出力されるので、個々のデータをあるファンクションでグローバル変数として宣言→実験ファイルのロード、という動きになるように書いたつもりなのですが、
「Undefined function or variable xxxx」(xxxxは私の宣言したはずのグローバル変数)というエラーメッセージが表示されてしまいます。
どう直したらよいのか教えていただけないでしょうか。
私の書いたプログラミングの構成は以下のような感じです。
1. メインのmファイルでグローバル変数を定義するためのfunc1を呼び出す。
2. func1でグローバル変数をひたすら定義。宣言の仕方はオフィシャルサイトと同じ。
global data1;
global data2;
global data3;
3. メインのファイルから実験データをロードする。実験データはmファイル内に宣言した
グローバル変数と同じ名前の変数に代入するような記載になっています。
data1 = 0.005;
data2 = 2800;
data3 = 1.242;
なお、実験結果のmファイルの読み込みだけ単体で実行するとワークスペースに変数とその値が表示されるので、3.ロード の記載が間違っているとは思えません。
宜しくお願いします。
No.4ベストアンサー
- 回答日時:
No.2です。
>デバッグで動きを見たところ、グローバル変数の宣言後までは期待通りの動きですが
ここはOKですね。
>[file, path] = uigetfile({'*.m'},'File Selector'); で実験結果ファイルを選択直後、ワークスペースがリセットされ
>(グローバル変数が消え、ファイル選択のために使ったこの関数の変数、file, pathがワークスペースに出現)したので、これが原因かもしれません。
その様ですね。
>にんたまくんさんは、loadで読み込みを行いましたか?
loadなしです。ワークスペースリセット後、再度、グローバル変数を再宣言とかはできないのでしょうか(ここは今、アドリブ的な考えです。)
>お忙しいところ申し訳ありません。もしくは、問題ないようでしたら、スクリプトを拝見させていただけないでしょうか。
>(この場合は自分で読みます)
お恥ずかしいくらい簡単なプログラムですよ。
私の方はloadなしで問題なし。質問者様はloadありで、エラー発生。あなたのNo.2コメントの予測原因が問題なのでしょうね。
何か、不明ありましたら、追加コメント下さい。私の回答できる範囲であれば回答します。
プログラムは以下です。
******** main ******** (main_test.m)
clear
#grobal data1
#grobal data2
#global data3
x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a=1
func1(a)
data1 = 0.005;
data2 = 2800;
data3 = 1.242;
who global; ←ここはglobal変数が何かを表示されるコマンドです。
data1
data2
data3
**************************
********* sub1 ******** (func1.m)
function y = func1(x)
global data1;
global data2;
global data3;
y = x;
end
************************
ご説明ありがとうございます。
グローバル変数を再宣言は元々していません。そして、ちょっとよく分からないですが、実験データファイルの取り込み([file, path] = uigetfile({'*.m'},'File Selector');.....)を呼び出す関数内ではなく、メイン関数でやったらうまく動きました。
いろいろとアドバイスありがとうございました。
No.3
- 回答日時:
> 個人のライセンスでないので、mathworksに問い合わせられなくて。
できます。会社のライセンスでも、学校のライセンスでも、研究室のライセンスでも、ライセンス番号があって保守契約が生きていれば、マスワークスは対応してくれます。
言葉足らずですみません。学校に問い合わせても、ITサポートと教務課でたらい回しでライセンス番号含む契約情報を教えてもらえない状況です。
No.2
- 回答日時:
こんばんは。
私自身の簡単なプログラムで確認して見ましたが、上記のエラーは発生せずに、globalになっていることも確認できました。(変数がglobalか否かは "who global⏎"で確認できます。
多分、質問の所の1.と2.あたりがうまく動作していないのではないですか?。
>「Undefined function or variable xxxx」が出ているということはmファイルでdata1,data2,data3という変数は知らないと言っているのでしょうね。
私の確認したプログラムで良ければ、情報提供しますので、私のプログラムと自分のプログラムの違いを見る、私のプログラムをglobal変数宣言の所をコメント文にして、どうなるかを調べて見ますか?。
ご自分のプログラムで、実験ファイルのロードをせずに、グローバル変数を定義し、単純に質問の1,2,3の部分だけでも、同じ様に「Undefined function or variable xxxx」が出ますか?。
→折角、宣言したのに、ロード作業中に何か変わっているものはないかを疑っています。
質問文からすると、特に問題なし、質問者様のプログラミング能力からすると、下手なドジは踏んでいる様には思えませんが。。。
ご丁寧にありがとうございます。
同一ファイルで宣言(global data1;...)と代入(data1 = 0.5;...)を行なったところ、警告(*)は出ましたがワークスペースに変数も値もセットされました。
デバッグで動きを見たところ、グローバル変数の宣言後までは期待通りの動きですが
[file, path] = uigetfile({'*.m'},'File Selector'); で実験結果ファイルを選択直後、ワークスペースがリセットされ(グローバル変数が消え、ファイル選択のために使ったこの関数の変数、file, pathがワークスペースに出現)したので、これが原因かもしれません。
できたら汎用性を持たせたいので実験結果ファイルはユーザに都度任意選択できるものが良いと思いましたが、これが原因なら諦めようと思います。
にんたまくんさんは、loadで読み込みを行いましたか?
お忙しいところ申し訳ありません。もしくは、問題ないようでしたら、スクリプトを拝見させていただけないでしょうか。(この場合は自分で読みます)
宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- C言語・C++・C# 競技プログラミングに関する質問です。 3 2022/04/03 19:51
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
宮崎駿作品集15枚組を購入した...
-
Debianをノートパソコンにイン...
-
パスワードをハッシュ値にして...
-
3Dキャラクターモデリングにつ...
-
プログラミング言語やシェルを...
-
AI を おちょくる質問
-
GitHubの使い方が分からないの...
-
GitHubはオープンソースのプロ...
-
UQモバイルやLINEモバイルやmin...
-
AndroidはLinuxディストリビュ...
-
SIMのように電線を使わずにイン...
-
電線からインターネットに接続...
-
ドコモやソフトバンクやauやLIN...
-
職場のノートパソコンを起動す...
-
急にパソコンが インターネット...
-
電線からインターネットに接続...
-
Linuxユーザーはリモートアクセ...
-
LinuxではUTF8のBOMなし、UTF8...
-
バグがないソフトウェアを作る...
-
皆さん、おはようございます♪ N...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
CSVファイルの複数行削除
-
OS入ってる機器のソフト・アプ...
-
Python 3.12.2 か一番最新のパ...
-
pythonの実行に関する質問
-
パイソンのソースコードをChatG...
-
画像生成AIのプロンプトの作り...
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
Google ColaboでGUI作成
-
Python... 環境設定 初心者です...
-
HTMLソースが表示のページのも...
-
ネットワークフォルダの中身を...
-
MOVEコマンドでサブフォルダー...
-
google Colabでmatplotlibの描...
-
VBAでパワーシェルを実行したい...
-
Pythonでの文字列からfloatへの...
-
Webサイト内に埋め込んだmp4動...
-
初心者powershellのPS1ファイル...
-
pythonについて(初心者です)
おすすめ情報