从具有相同扩展名但没有扩展名的目录中获取文件名 (MATLAB)



我是 MATLAB 的新手,所以如果我说的东西完全错误,请原谅。我正在尝试编写一个小程序,该程序从扩展名为.xlsx的某个目录中读取文件,然后将列分配给向量。当我手动放弃文件名时,我的程序如下所示:

files = {'130926','130927'}
file_number = 1;
file_amount = length(files);
while file_number <= file_amount
file_name = files(file_number);
cd('C:place_where_I_store_my_files');
A = xlsread(char(strcat(file_name)));
J = A(:,1);
J_sp = A(:,2);
file_number = file_number + 1
end

我已经尝试了很多不同的东西来自动读取文件:

files = {'*.xlsx'}

但这一切都会产生错误。感谢您的阅读。

马蒂亚斯

dir 函数与通配符搜索一起使用。

my_path = 'C:place_where_I_store_my_files';
xlsfiles = dir(fullfile(my_path, '*.xlsx'));
for ii = 1 : length(xlsfiles)
  disp(fullfile(my_path, xlsfiles(ii).name));
end

上面的代码将显示您指定的目录中所有 xlsx 文件的名称。

这个怎么样:-

>> list = dir('C:path*.xlsx');
>> names=cellfun(@(x)x(1:end-5),{list.name},'UniformOutput', false);

使用names{1}names{2} ...等等

这将创建一个匿名函数,该函数适用于从命令接收的名称单元格dir

类型 : help dir help cellfun 在命令提示符下了解更多详细信息

仅供参考,这为我做到了:

files = dir('C:UsersMatthiasDesktopKUL2e_MasterThesisMBR_dataMBR_online*cs.xlsx')
file_number = 1;
file_amount = length(files);
while file_number <= file_amount
file_name = files(file_number).name;
cd('C:place_where_I_store_my_files');
A = xlsread(char(file_name));
J = A(:,1);
J_sp = A(:,2);
file_number = file_number + 1
end

问候马蒂亚斯

相关内容

最新更新