Matlab初心者です、よろしくお願いします。
Matlabであるmatファイルを1000個作りました。それぞれのファイル名は1~1000.matのような感じです。
中身はすべて7*250の配列で、それぞれ異なる値が入っています。
これまではfor文を使ってiをstring型にしてからloadで読み込んで、値を用いて計算するのを繰り返していました。
しかしこのままカレントディレクトリに1000個もmatファイル置いておくと、とても作業がしづらく邪魔です。
例えばこれを1つにまとめて使う方法や、うまいload方法、違うディレクトリを作成して、load時のみそのディレクトリを参照する方法などありましたら、ご教授していただけると助かります。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
load foo/10.dat
とか書けば,subdirectory foo を見に行くし.
load ../foo/10.dat
とかかけば,1こ上のディレクトリの下の foo ディレクトリのデータを読むし,
ウィンドウズなら,
load d:/Temp/10.dat
で d ドライブ Temp ディレクトリの 10.dat を load します.
No.1
- 回答日時:
load自体は別のディレクトリからでも読み出せます。
load('ディレクトリ名\ファイル名.mat')
みたいにすればよいかと。
MatlabにString型ってありましたっけ?文字はchar型だったような…ってどっちでもいいですね。
まあプログラムの最初にaddpathでmatファイルを置いているディレクトリにパスを通しておいて、終わりにrmpathすれば途中の読み込み時にはディレクトリの指定なくloadできますけど、わざわざそんなことする必要もないでしょう。
>これまではfor文を使ってiをstring型にしてからloadで読み込んで
ループ変数にiを使われているということはC経験者でしょうか?
(私はプログラムのとっかかりがMatlabで、Matlabではiは虚数単位ですからループ変数にkを使うクセがあるのです)
Cをお使いでしたらsprintfはご存じですよね?
loadのfilenameにsprintfの出力が使えますので、
例えば
dir='ディレクトリ名';
としておいて、
load(sprintf('%s\\%d.mat',dir,i))
とすれば読み込めます。
この方法だと、例えば
1.mat、2.mat、…としているとファイル名でソートした時ファイルの順番がばらばらになってしまいますが、
sprintfが使えるのであればファイル名をあらかじめ0001.mat、0002.mat、…みたいにして
load(sprintf('%s\\%04d.mat',dir,i))
としてやることもできますね。
参考になれば幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- Excel(エクセル) エクセルのファイルを複数のPCで同期する方法は? 7 2022/11/23 17:35
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- その他(開発・運用・管理) バッチファイルで特定のファイル・ディレクトリ以外を削除する方法について 4 2022/05/31 14:03
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
図に示す階層構造で,現在のデ...
-
Subversionで、ファイルをリネ...
-
FTPコマンドでディレクトリごと...
-
【PHP】declare命令で”Fatal er...
-
VB.NET 最下位のディレクトリ名...
-
[ ディレクトリ '.' は書き込み...
-
絶対パス?絶対アドレス?意味...
-
exec()で他ディレクトリのexeプ...
-
PHP 削除やコピーが出来ない
-
visualstudioでc#のdllができない
-
currentディレクトリ内で、任意...
-
バッチを用いたフォルダの自動移動
-
/usr/local/lib/phpとはどうい...
-
EXEを起動するとDLLが見つから...
-
Subversionのリポジトリの削除
-
mingwにパスを通せたのですが、...
-
fopenでファイルが開かない場合...
-
CFileDialogの最初のディレクト...
-
ローカルサーバーでパーミッシ...
-
ASPのページだけ表示できません。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
バッチを用いたフォルダの自動移動
-
CFileDialogの最初のディレクト...
-
visualstudioでc#のdllができない
-
ファイルアップロードに関して...
-
現在位置より2つ上のディレク...
-
makefile でファイルをコピーす...
-
fopenでファイルが開かない場合...
-
rmdirでフォルダが消せません
-
絶対パス?絶対アドレス?意味...
-
コマンドプロンプトを指定のデ...
-
VB.NET 最下位のディレクトリ名...
-
VB2008でFTPでのディ...
-
DLL のロードの順序
-
MkDir関数
-
ファイル選択ダイアログで選択...
-
図に示す階層構造で,現在のデ...
-
[ ディレクトリ '.' は書き込み...
-
JAVA内で複数のファイルを削除...
おすすめ情報