0

我有一个如下导入的大文本文件MATLAB

Run Lat Long Time
1 32 32 34
1 23 22 21
2 23 12 11
2 11 11 11
2 33 11 12

最多 10 次运行等。

所以我试图分解文件中的每个部分:第 1 部分、第 2 部分等,并将其写入 10 个不同的文本文件。文件 1 将具有来自运行 1 的数据。文件 2 将具有来自运行 2 的数据。

4

2 回答 2

1

您正在寻找的是Matlab 的 textread 函数。我会给你你需要的部分并制定逻辑,但你需要自己连接这些部分:)

你的阅读看起来像这样

[head1, head2, head3, head4] = textread(file_name,'%s %s %s %s',1);
[run, lat, long, time] = textread(file_name,'%u %u %u %u');

并且您的 write 方法将使用循环来迭代

unique(run)

创建一个文件

fout = fopen([base_file_name_out num2str(run_number)]);

并将其中包含的值写入它

lat_this_run=Lat(run==run_number);

使用方法

fprintf(fout,'%u %u %u\n', lat_this_run, long_this_run, time_this_run)

于 2012-08-18T15:50:57.370 回答
0

如果您的数据已经加载到 matlab 并命名A,您可以这样做:

>> a = max(A(:,1));
>> AA={};
>> for i = 1:a
     AA{i}=A(find(A(:,1)==i),:)
     name=sprintf('%d.txt',i);
     dlmwrite(name,AA{i},'\t');
   end

输出将是包含制表符分隔数据的 .txt 文件。

于 2012-08-18T16:26:20.307 回答