1

Scilab のフォルダにある複数の画像を読みたいです。私のコードは次のとおりです。

I1=dir('G:\SCI\FRAME\*.jpg');
n=length(I1);
disp(n);
for i=1:n
    I2=strcat('G:\SCI\FRAME\',I1(i).name);
    I=imread(I2);
    figure(),imshow(I);
end

しかし、うまくいきません。「無効なインデックス」というエラーが表示されます。

4

1 に答える 1

1

訂正すべき誤りが 2 つあります。

1.)length文字列の文字数 (= 長さ) を与えますが、ベクトル (ファイル名) の要素数 (= サイズ) を取得したいので、 を使用する必要がありますsize

2.) I1 は によって返されるリスト構造dirです。、、、 など の .演算子を使用して内容を抽出できます。これらをコンソールに入力して、内容を確認してください! フルパス + ファイル名 + 拡張子が文字列ベクトルとして既に含まれているため、. とにかく、2 つの文字列を一緒に「接着」したい場合は、簡単に使用できます。したがって、改訂されたコードは次のとおりです。I1.nameI1.dateI1.bytesI1.isdirI1.namestrcat+S="fisrst_string"+"second_string"

I1=dir('G:\SCI\FRAME\*.jpg');
n=size(I1.name,"*");  //size of the I1.name vector
disp(n);
for i=1:n
  I=imread(I1.name(i));  //I1.name is a string vector
  figure();
  imshow(I);
end
于 2015-02-08T08:59:18.673 に答える