• ベストアンサー

MATLABのsaveでファイル名を試行ごとに変えたい

MATLABを使ってるんですが,変数を保存するとき, saveコマンドで, save 'filename.txt' A -ASCII -TABS で,Aのデータがfilename.txtに保存されますよね. で,このfilenameの名前を試行ごとに変えたいのですが,やりかたが分からないので教えてほしいです. 想像だと, save 'filename%d.txt' ~ みたいな感じで毎回違う数字をファイル名に入力できるかと考えたんですが,書き方がわかりませんでした. もしくは,ファイルを出力するフォルダを指定する方法などもわかるとうれしいです. お願いします.

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

  • ベストアンサー
  • neuralnet
  • ベストアンサー率35% (14/39)
回答No.2

自分で作ったプログラムソースから抜粋しました。 自分は画像処理を行って、画像330枚をひとつのディレクトリに 書き出しています。 d = dir('cars/*.jpg'); こうすることで、カレントディレクトリにあるcarsというディレクトリ のファイル(.jpg)の情報を全て構造体として d に書き出します。 あらかじめcarsを作っておきます 構造体の中身は d.name 'car0004.jpg' //ファイル名 d.data '25-9-2008...'//日付 d.byte '4996' //バイト d.isdir '0' d.num 7.4e^... といった情報が入っています。実際に試してみてください。 maisu=1; kakidashi=['kensa330/' d(maisu).name]; これでkensa330というフォルダの位置と名前を指定することができます。 workspaceには kakidasi='kensa330/car0004.jpg'となります。 maisuをfor文などでまわすことでcar0001.jpg car0002.jpg ... と順次新しく変換されます。 あとはがんばってください。

この投稿のマルチメディアは削除されているためご覧いただけません。

その他の回答 (1)

  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.1

for td = 1:10 save( ['Phase-data21/DPA',num2str(td),'.mat'], 'DPA'); end これで,Phase-data21 というサブディレクトリにファイル DPA1.mat から DPA10.mat を作って, ファイルの中に変数 DPA を保存します.

関連するQ&A

  • matlab ファイル名 読み込み

    matlabでファイルを読み込むときに、ファイル名を変数内に格納する方法を教えていただけないでしょうか。 その変数を利用して、出力ファイル名を操作したいと考えています。 宜しくお願いします。

  • MATLAB でのデータ保存について

    MATLAB でシミュレーションを行なっているのですが データの保存方法がいまいちわかりません. グラフに出力してグラフを保存する事はできるのですが データを数値としても保存しておきたいので. save [ファイル名] [変数名] -ascii としても見やすいデータではないので なにかいいデータの保存方法はありませんか? データの利用法は OpenGL によるアニメーションのためです. よろしくお願いします.

  • MATLABでテキストに書き出す時1.00e+2を100にする方法

    MATLABで計算したデータを save ファイル名 変数名 -ascii で書き出そうとしたのですが できたファイルの中身がe+を使った表示になってしまいます。 具体的には'341'が'3.4100000e+2'のように表示されてしまいます これを'341'とファイルに出力時に表示させるにはどうすれば良いのでしょうか?知っている方がいたら教えてください!

  • [MATLAB]同一階層にファイルがあるかどうか

    MATLABで同一階層内にあるファイルがあるかどうかを見つけるには どうすればいいでしょうか? 例えばファイルsample.txtがあるかどうかを探し If文で分岐してあればAを実行、なければBを実行などを作成したいです。

  • MATLABのファイル読み込みに関して

    こんにちは,今回MATLABでのファイル読み込みに関して質問したいことがあり書き込みました 現在in_1-C110.txt,in_1-C120.txt,......in_1-C190.txt'というファイルがあり,これらのファイルをまとめて読み込もうとして以下のようなコードを記述しました for a=1:9 %ファイルを読む fin=fopen(['in_1-C1' a '0.txt'],'r');     %a A=fscanf(fin,'%f %f %f %f %f %f %f',[7 inf]); fclose(fin); (略) end このように,ファイル名の最初と最後は共通なので,異なる部分のみをループさせて連続して読もうとしています ところが,この方法だとInvalid fid.と出てしまいます 調べてみると、意図したものでは%aのところが in_1-C110.txt in_1-C120.txt となるはずだったのですが,fscanfを抜いてこのファイル名のところだけ書き出すようにしてみると in_1-C1(変な文字)0.txt in_1-C1(変な文字)0.txt といったような変数の部分が文字化けを起こしていることがわかりました. したがって,ファイルが読めない原因がこれにあるのだと推察したのですが,解決方法がまったくわからない状態です この問題を解決する方法がわかる方がおられましたら,教えていただけないでしょうか?

  • MATLABで配列をファイルへ書き込む方法

    現在MATLABについて勉強しているのですが、配列M(N×N、Nは任意)をファイル(.txtなど)に書き込む方法が分からず困っています。 fid=fopen('matrix.txt','wt'); fprintf(fid,'%6.4f',M); fclose(fid); このように書いているのですが、全要素が1行に並んでしまいます。 N行N列の形で配列をファイルに出力したいのです。 どなたか初心者でも理解できるようご教授お願い致します。

  • ファイル操作について

    パールを使っています. ファイルをオープンする際に,forループでまわして 「1.txt」,「2.txt」,「3.txt」・・・ というファイルを連続でオープンさせたいのですが, どうすればいいのでしょうか? 数字を変数$aとして, ="./$a.txt" とやってもできませんでした. まったくわからないので,よろしくお願いします.

  • MATLABのwavreadについて

    現在、MATLABのソースを見ているのですが。 [y,Fs,bits] = wavread('filename',[N1 N2]) の一文はどういう動作を行っているのでしょうか? マニュアル等をみて以下のことを見つけたのですが、どうにも理解できません。 ・[y,Fs,bits] = wavread('filename') は、Hertz 単位でサンプルレート(Fs)を戻し、ファイルの中のデータを符号化するために使用するサンプルあたりのビット数(bits) も戻します。 ・[...] = wavread('filename',N) は、ファイル内の各チャンネルから最初の N個のサンプルのみを出力します。 どなたかわかりやすく教えていただけないでしょうか、よろしくお願いいたします。

  • バッチ・ファイル中で時間をファイル名に使用したいです。

    いつもお世話になっております。 バッチ・ファイルを使用して、「netstat」コマンドの結果をファイルにリダイレクトし、そのファイル名に時間を使用したいです。 いま、使用しているファイルは、「バッチファイルA」と「バッチファイルB」の2つがあります。 「バッチファイルA」は0時~9時まで、「バッチファイルB」は10時~24時までとなっています。これを、1つのファイルにまとめたいのですが、よろしくご教示をいただけませんでしょうか。 --------------------------- @「バッチファイルA」(0時~9時) set TIME_A=%TIME% set TIME_B=%TIME_A:~1,4% set TIME_B=%TIME_B::=% set FILENAME=%TIME_B% netstat -s -e >C:\Temp\%FILENAME%.txt --------------------------- --------------------------- @「バッチファイルB」(10時~24時) set TIME_A=%TIME% set TIME_B=%TIME_A:~0,5% set TIME_B=%TIME_B::=% set FILENAME=%TIME_B% netstat -s -e >C:\Temp\%FILENAME%.txt ---------------------------

  • 絶対パス名からファイル名を取り出して、変数に格納するバッチ

    DOSコマンドバッチで定義した変数"fullpath"に絶対フルパス名が格納されているとします。 この変数からファイル名だけを抽出して別の変数"filenae"に格納したいのですが方法がわかりません。 1. set fullpath = "C:\test\test.c" 2. ----ここの部分をどのように処理すれば?------ 3. set filename = fullpathから抽出したファイル名 私がやってみた方法として、for文とdir /bを組み合わせてみたのですが for %a in ( dir /b c:\test\test.c ) do set filename =%a 本来dir /bを実行するとファイル名のみが表示されるのに、For文をかますと絶対フルパスでfilenameに値が格納されてしまいます。 dir /b c:\test\test.cの結果を直接filename変数に格納できれば解決するのですが、コマンド結果を変数に格納するにはFor文を使わないとだめなんですよね? なにかよい方法はないでしょうか?

専門家に質問してみよう