我有一个如下导入的大文本文件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 的数据。
您正在寻找的是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)
如果您的数据已经加载到 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 文件。