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

时间:2013-09-27 18:21:22

标签: 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'}

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

的Matthias

3 个答案:

答案 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