Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在matlab中以特定名称列出文件夹中的所有文件?_String_Matlab_Loops_Dir_Xlsread - Fatal编程技术网

String 如何在matlab中以特定名称列出文件夹中的所有文件?

String 如何在matlab中以特定名称列出文件夹中的所有文件?,string,matlab,loops,dir,xlsread,String,Matlab,Loops,Dir,Xlsread,我一直在做一个循环,为文件夹中的121个不同文件分配Mx名称 allFiles = dir( '*.xls''String' ); allNames = { allFiles.name }; for ii = 1:length(allNames) M(ii) = xlsread(allFiles(1i)); end 问题是没有errormessage,但它没有为我想要的值/文件分配任何名称 listing = dir('*.xls'); disp(listing); 当我做一个

我一直在做一个循环,为文件夹中的121个不同文件分配Mx名称

    allFiles = dir( '*.xls''String' );
allNames = { allFiles.name };

for ii = 1:length(allNames) M(ii) = xlsread(allFiles(1i)); 
end
问题是没有errormessage,但它没有为我想要的值/文件分配任何名称

listing = dir('*.xls');

disp(listing);
当我做一个简单的dir时,它告诉我

 121x1 struct array with fields:
    name
    date
    bytes
    isdir
    datenum
但我必须使它成为一个字符串,以便xlsread工作

我想要的是为每个文件命名,这样我就可以在matlab中处理它们,即两个矩阵的加法


什么是错误的?

这个问题基本上只是输入错误和变量混乱:

allFiles = dir('*.xls'); % correct file extension

for ii = 1:size(allFiles, 1) % allFiles has one row per file, so loop over those
    M{ii} = xlsread(allFiles(ii).name); % store matrix in cell array
end

请注意,M现在是一个单元格数组,因为不能在一个矩阵或向量中存储多个矩阵。

错误消息是什么?有多少文件的扩展名为.xls的字符串?无论如何,括号vs.括号:allfilesii以1x1单元格数组的形式返回该单元格-allfiles{ii}返回该单元格的内容。我从1-24的那些对象来自编辑器中的另一个脚本。工作区不获取任何Mx对象。执行{}而不是没有任何区别。您的实际代码中是否有这样的输入错误:allFiles1i而不是allfilesii?最初它只有一个i,但matlab建议将其设置为{1i}以优化速度,这是一个论点。使它成为{ii}也没有任何区别。那么我如何才能将allFiles转换为字符串呢?您可以使用{}花括号代替括号,如@Notlikethat所述。例如,从dir命令中取出“String”,然后尝试xlsreadallNames{ii};-看看你得到了什么。如果只想尝试一个文件进行测试,可以在命令行xlsreadallNames{0}或xlsreadallFiles0.name上键入。如果您得到一些关于字符串的错误,请切换是否使用{}或.confirm。M1-M121现在给了我一个预期的矩阵。