重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

現在、matlabにより、複数のcsvファイルをループして画像化にしています。
複数あるcsvファイルをループで読み込みする時、被験者ごとにcsvファイルの数が違います。
よって始めの宣言で大量のcsvファイルの個数を宣言して、ループします。
csvがNULLになるときに処理が中止するようにしたいと思います。
(これにより一回一回、csvの数を宣言しなくて済みます。)
この時のNULLに当たるものが見つからなくて困っています。

////////////////////////////////////////////////////////
clear all;
j=1000;%配列の行列数
jj=10; %csvの数 実際の数はもっと少ない
test=[];
A=[0,0]; %空行列 ここの空行列AではNULLにはできない

for k=1:jj
test=load(sprintf('test%02d.csv',k)');%kの値を%02dに上書き
if test== %NULL or A or EOF or '' ?
break; %NULLになったら次のfor文へと進む
else
・・・・
////////////////////////////////////////////////////////

上のソースの最後から3番目の if test== の後にNULLになるのを入れたいと考えています。

どなたか知っている方、どうかよろしくお願いします。

A 回答 (1件)

既に解決済みかもしれませんが、方法は大きく2つあります。



(1)エラートラップで引っ掛ける
 CYBERNETのリファレンスに因ると、load関数は存在しないファイルを読むとエラーを返すとのことなので、try~catchを使用してエラーを検出する。

(2)exist関数でファイルチェック
 load関数の前にexist関数を使用してファイルが存在するかチェックする。

ちなみに、MATLABに値としてのNULLはなかったと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。大変助かりました

お礼日時:2008/12/24 19:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!