从MATLAB中的文件夹导入许多.txt文件并进行处理

时间:2016-06-30 12:13:03

标签: matlab import

即使很多科目都有相同的主题,我也找不到答案。

我在文件夹中有30个.txt文件(名称不同),我想在MATLAB中导入所有这些文件。从每个文件中取一列,并生成包含所有这些列的向量。

Bombo30m1.txt
Bombo30m2.txt
Bovolon30m2.txt
Rigutti30m4.txt

每个.txt文件有45列数字,以逗号分隔。 我的文本文件中的所有数字都是整数。

所有文件的列数相同,但行数不同(每行大约4000个)。

对于所有文件,我想取40列并用它制作一个向量。所以我会得到一个很大的载体。

1 个答案:

答案 0 :(得分:1)

首先,创建一个包含所有文件信息的struct

dir('*.txt')为您提供了一个包含文件所有信息的结构:

4x1 struct array with fields:    
    name
    date
    bytes
    isdir
    datenum

定义一个变量,您可以在其中放置第一列的值

使用number_of_files = numel(filenames)获取文件数量。 col_values是您将值放入的向量。注意,您应该尝试预先分配内存。

<强> Load the files

filenames(1).name为您提供第一个文件的名称,&#34; Bombo30m1.txt&#34;。 遍历所有文件,并获取值:load(filenames(ii).name)

最后将新值放在col_values之后的新值之后。

总结一下:

filenames = dir('*.txt');
number_of_files = numel(filenames);
col_values = [];

for ii = 1:number_of_files
    all_values = load(filenames(ii).name);
    col_values = [col_values; all_values(:,1)];
end

注意!! 此代码包含一些次优代码,因为我在循环中创建了一个增长的向量。如果这是一个将要执行多次的过程,那么你应该重写一下。 Relevant