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

有两个错误需要纠正:

1.)length给出字符串的字符数(=长度),但您想获取向量(文件名)中的元素数(=大小),因此您应该使用size.

2.) I1 是由 . 返回的列表结构dir。您可以使用运算符提取其内容.,例如I1.name, I1.date, I1.bytes, I1.isdir。将这些输入控制台,查看内容!由于I1.name已经包含完整路径+文件名+扩展名作为字符串向量,因此您不必使用strcat. 无论如何,如果您想将 2 个字符串“粘合”在一起,则使用起来更容易,+例如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 回答