• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Matlab 指定したディレクトリからのload)

Matlabでのディレクトリからのload方法とは?

このQ&Aのポイント
  • Matlab初心者のためのload方法とは?ディレクトリからmatファイルを効率的に取得する方法や、カレントディレクトリに大量のmatファイルを置くときの問題点について解説します。
  • Matlabで大量のmatファイルを扱う際に便利なload方法について紹介します。カレントディレクトリに大量のmatファイルを置くと作業がしづらくなる問題を解決する方法もご紹介します。
  • Matlabのload方法について解説します。大量のmatファイルを1つにまとめる方法や、別のディレクトリを作成してload時に参照する方法などを紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.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)
回答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