我在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'}
但这一切都会产生错误。 谢谢你的阅读。
的Matthias
答案 0 :(得分:1)
通过通配符搜索使用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 文件的名称。
答案 1 :(得分:0)
这个怎么样: -
>> 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
以获取更多详细信息
答案 2 :(得分:0)
仅供参考,这是为我做的:
files = dir('C:\Users\Matthias\Desktop\KUL\2e_Master\Thesis\MBR_data\MBR_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
问候, 的Matthias