- ベストアンサー
Matlabでのディレクトリからのload方法とは?
- Matlab初心者のためのload方法とは?ディレクトリからmatファイルを効率的に取得する方法や、カレントディレクトリに大量のmatファイルを置くときの問題点について解説します。
- Matlabで大量のmatファイルを扱う際に便利なload方法について紹介します。カレントディレクトリに大量のmatファイルを置くと作業がしづらくなる問題を解決する方法もご紹介します。
- Matlabのload方法について解説します。大量のmatファイルを1つにまとめる方法や、別のディレクトリを作成してload時に参照する方法などを紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
load foo/10.dat とか書けば,subdirectory foo を見に行くし. load ../foo/10.dat とかかけば,1こ上のディレクトリの下の foo ディレクトリのデータを読むし, ウィンドウズなら, load d:/Temp/10.dat で d ドライブ Temp ディレクトリの 10.dat を load します.
その他の回答 (1)
- Kules
- ベストアンサー率47% (292/619)
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)) としてやることもできますね。 参考になれば幸いです。