- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MATLABのファイル読み込みに関して)
MATLABのファイル読み込みに関する問題と解決方法
このQ&Aのポイント
- MATLABでのファイル読み込みに関する問題が発生しています。ファイル名の一部をループさせて読み込もうとした際に、変数の部分が文字化けして読めないというエラーが発生しています。
- 具体的には、ファイル名がin_1-C110.txtやin_1-C120.txtという形式であり、最初と最後は共通なので、異なる部分をループさせて連続して読もうとしています。
- しかし、%aの部分が正しく適用されず、ファイル名内の変数の部分が文字化けを起こしています。この問題を解決するための方法を教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
MATLABに限らず、大体の言語ではデータを異なる型として使用する場合、型変換を行わなければいけません。 ご質問では、a(数値)を変換せずにファイル名(文字列)として使おうとしているため、不具合が発生しています。以下のように型変換を行えば問題ないはずです。 fin = fopen(['in_1-C1' num2str(a) '0.txt'], 'r'); あと、このプログラムは、少なくとも以下の3点については修正した方が良いと思います。 (1) ループカウンタを i に変更 特に理由がない場合、大抵のプログラムではループカウンタとして i 以降の英小文字を使用しています。 時間はt、番号はm,n,no、特に回数を数える場合はcountなどを使用する場合もありますが。 (2) fscan関数実行の前に、変数 fin の検査 fopenに失敗すると-1が返ってきているはずです。 (3) fscan関数はエラートラップをかける ファイルアクセスは、外的な要因(ファイルの移動、改変、削除など)で比較的エラーの発生しやすい処理です。
お礼
回答ありがとうございました おかげで無事解決できました ただ、num2strではシンタックスエラーとなったため、int2strを使用しました forのデフォルトはintなのだと思われます C++みたいに for(int a=0; a<9;a++) とか書けるとわかりやすいのですが ともあれありがとうございました