在matlab中一次导入多个文件

在matlab中一次导入多个文件,matlab,import,Matlab,Import,非常感谢你阅读这篇文章 问题:我有一个关于在Matlab中导入的问题。我正试图设计一个风力涡轮机。为此,我需要阅读许多不同的文本文件,其中包含定义机翼形状的x和y坐标(所有文本文件都在一个文件夹中),然后依次分析每个文件 我的第一次尝试是 %% Reading the datafile %Opening the filename in the format given to us by UIUC fid=fopen('Filename',r); %Skipping over the fir

非常感谢你阅读这篇文章

问题:我有一个关于在Matlab中导入的问题。我正试图设计一个风力涡轮机。为此,我需要阅读许多不同的文本文件,其中包含定义机翼形状的x和y坐标(所有文本文件都在一个文件夹中),然后依次分析每个文件

我的第一次尝试是

%% Reading the datafile 
%Opening the filename in the format given to us by UIUC 
fid=fopen('Filename',r);

%Skipping over the first lines (asterisk)
fscanf(fid,'%*s %*s %*s \n %*s %*s ',[1,5]);

%Reading over the Values of the columns
data=fscanf(fid,'%f %f  \n',[2, inf]);

%Extracting the different types of data from the datafile
x=data(1,:);
y=data(2,:); 
这种代码有两个问题:

第一个问题是,我需要在第一列中删除数量可变的单词

问题1:是否有方法仅从数据库中删除第一列数据,还是必须删除所有值

第二个问题是,我有1550个表要查看,将文件名更改1550次将非常繁琐和耗时


问题2:是否有一种方法可以一次性打开文件夹中的所有文件?

阅读表格文件的一种简单方法是使用
readtable
。例如,如果您知道您的文件有两个要跳过的标题行,那么您只需运行

t = readtable('my_file', 'HeaderLines', 2);
然而,这并不意味着您使用的是表,而不是MATLAB数组。如果希望保留数组,只需将表传递给
table2array
(下面的示例)

在处理大量文件方面,假设您的工作目录包含以下文件:

a1.txt   a3.txt   b1.txt   ...
a2.txt   a4.txt   b2.txt
您应该首先获得一个包含所有文件名的数组,然后遍历该数组。实现这一点的一种方法如下

all_files = dir('*.txt') % Use a suitable glob to match your filenames
for i = 1:length(all_files)
    data = table2array(readtable(all_files(i).name, 'HeaderLines', 2);
    % do stuff
end
或者,如果要手动读取文件,请执行以下操作:

all_files = dir('*.txt') % Use a suitable glob to match your filenames
for i = 1:length(all_files)
    fid = fopen(all_files(i).name, 'r');
    % do stuff
    fclose(fid);
end

请注意,代码假定所有数据文件都具有相同的格式。

能否在一个文件中添加几行,并显示需要删除和保留的内容?文件名是否都类似于table_num_1234?然后你可以自动构建它们…请在每个问题中问一个问题。看见