• 締切済み

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

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

  • oxfax
  • お礼率27% (57/209)

みんなの回答

回答No.1

同一階層内って言うのは、 カレントディレクトリ内のことかな? サーチパス含めていいんなら exist カレントディレクトリ内のみなら dir のあと strcmp でできると思います。

関連するQ&A

  • MATLAB から exe ファイルの実行について

    こんにちは。 MATLAB 初心者です。 環境は Windows XP SP3、MATLAB R2009b です。 MATLAB から exe ファイルを「引数付き」実行したいのですが、可能なのでしょうか? open で exe ファイルやその他ファイルを開けることは分かったのですが、「引数付きでの exe ファイル実行」については分かりませんでした。 申し訳ないですが、ご教授ください。

  • matlabでの改行文字について

    matlabでのテキストファイルの書き換えを行いたいのですが,改行文字の検出ができません.(C言語では作れますが,matlabで作りたいのです.) 例として以下のファイル(read.txt)の書き換えの方法を教えてください. start 0 1 2 abcdef 0 1 2 3 4 xyz end 上のファイルにおいて,abcdef以下の01234を他のファイルに書き換えたく,以下のスクリプトを作成しました. Path1='read.txt'; Path2='write.txt'; judge=0; Fid1=fopen(Path1,'rt'); Fid2=fopen(Path2,'wt'); while feof(Fid1)==0 Line=fgets(Fid1); if Line=='\n' judge=0; elseif judge==1 fprintf(Fid2,'%s',Line); end if strcmp(Line,'abcdef\n')==1 judge=1; end end fclose(Fid1); fclose(Fid2); end ここで,知りたいのは「Line=='\n'」と「strcmp(Line,'abcdef\n')==1」の条件文がうまく働いてない理由です.これを実行すると何も書かれてないファイルが作成されます. strncmp(Line,'abcdef',6)とするとこちらはうまく認識しますが,改行文字のみの行の検出はどのようにして行えばよいのでしょうか.

  • MATLABの*.mファイルについて

    MATLABの*.mファイルについてなのですが、これを例えばMATLABでコンパイルしてMATLABの入っていないPCで実行できる*.exeファイルのようなアプリケーションにすることってできるのでしょうか?

  • MATLABで連続した画像の取り込み方

    1つのJPGファイルを取り込み、表示させるやり方は I = imread('sample000.jpg'); imshow(I) これででき、作業を書くと for t=1:1:10 if(t==1) A=imread('sample000.jpg'); imshow(A) hold on [xa, ya]=textread('sample01.txt','%d %d','headerlines',10); end plot(xa(t,1), ya(t,1), 'r+'); if(t==10) hold off end end ということになります。 10回ループさせるのは、sample01.txtの10行目以降の中身が10個ずつの座標だからです 以下はsample01.txtの中身を簡単に書いたものです ...         ※9行目 test coordinates  ※10行目 44 54        ※11行目 45 46 53 43 55 41 58 38 61 33 66 36 69 41 72 47 73 52        ※20行目 10         ※21行目 46 54        ※22行目 48 52 ... ... 77 51        ※31行目 10         ※32行目 47 52        ※33行目 ... ... という感じです。 で、本題ですが sample000.jpg sample001.jpg sample002.jpg ... ... など複数のjpgファイルをループを使って連続して取り込み、作業したいときは、どういうコマンドでどういうループを作ればいいでしょうか? 具体的には 1枚目のsample000.jpgファイルを読み込みhold on、sample01.txtの11行目から20行目の座標を赤い点でプロットし、最後にhold off 2枚目のsample001.jpgファイルを読み込みhold on、sample01.txtの22行目から31行目の座標を赤い点でプロットし、最後にhold off 3枚目の... というループです。 下手な説明でごめんなさい、誰かMATLABの画像処理に詳しい方がいたら応答よろしくおねがいします。

  • DOSバッチファイルへの引き渡し方法

    次のような操作をしたいのですが。 御教示下さい。 操作の流れ テキストファイルに一文字出力する CMD1 > a.txt テキストファイルa.txtには、一文字しかはいらない 1やa など そのa.txt の内容を判断して バッチファイルb.bat内で分岐処理したい   b.bat 内  if 'a.txtの内容' により分岐処理

  • 特定の拡張のファイルを検索し、別のPCにコピーフォルダ名毎コピーしたい

    AのPC上で*.txtを検索し、フォルダ階層名毎、BのPCにコピーしたい。 例)AのPC c:\sample.txt c:\test\sample.txt 希望する結果)BのPC c:\A ←検索したPCの名前のフォルダを作成 (難しければ手動で作成) c:\A\sample.txt c:\A\test\sample.txt どなたかわかる方、教えてくださいm(_ _)m

  • 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で多数のファイルを1度に読み込みたいのですが, ちょっと困っています. ファイルの名前は, 「a_1」 といった感じで 「アルファベット_ファイルの番号」 となっていて,アルファベットもファイルの番号も小さい方から 順番になっているためfor文で読み込めるかと思ったんですが, 「a_?」は ?=1~20 まで 「b_?」は ?=1~15 まで というかんじでアルファベットによってファイルの数が 違うため, for アルファベット == aからcまで  for ファイルの数字 == 1から20まで x = sprintf ( アルファベット_ファイルの数字 ) といった感じで読み込むとb_16が存在しなくてエラーが出てしまいます. この場合どうすればうまく読み込めるでしょうか. どなたかお願いします.

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

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

  • フォルダ階層のあるzipファイルで全ファイルを抽出

    こんにちは 日々のちょっとした作業が煩わしくて、自動化できないかと思い質問します。 仕事で毎日、何度となく zip ファイルを受け取ります。このzipファイルは次のような階層になっています。 パターン1: base.zip -folder1 --folder2 ---folder3 ----workfile.txt パターン2: base.zip -folder1 --folder2 ---folder3 ----folderA -----workfileA.txt ----folderB -----workfileB.txt ----folderC -----workfileC.txt 必要なのは、パターン1の場合は workfile.txt、パターン2の場合は workfileA|B|C.txt です。毎日このフォルダ階層をたどって、最後のファイルをコピーしてまた元のディレクトリに戻ってペーストしています。パターン2の場合も、最後のA|B|Cファイルを元の同じ1つのディレクトリに並べてコピーしています(foldrA|B|Cに分かれていても関係ない、ということです)。 こうした作業を自動化する方法はないでしょうか。 7-zip アプリケーションは導入しています。 おそらく、考え方としては、zip 内にある「フォルダ以外」=「ファイル」を、そのzipファイルと同じディレクトリにすべて展開する、というスクリプトになると思います。 7-zip あたりのコマンドラインをbatファイルでこねくり回すとできるのか、zip をフォルダとして展開した後、batかwshスクリプトでぐるぐる回すのか、どうしたらよいかわかりません。 どなたかお知恵を貸してください。よろしくお願いします。