以下是我的数据文件:
1
num num num
num num num
num num num
num num num
num num num
2
num num num
num num num
num num num
num num num
num num num
3
num num num
num num num
num num num
num num num
num num num
。 。
1000
num num num
num num num
num num num
num num num
num num num
'num'指的是不同的浮点数,1,2,3,...,1000也是文件的一部分,每行占一行。我想要做的是,我需要从时间步骤1到1000的循环,并且在每个步骤中,我需要读取它下面的3列浮点数块作为三个列向量。然后我继续下一个步骤,阅读下面的块,直到我读完全部。
我怎么能用Matlab读取这个文件?简而言之,我想要做的是将第2行到第6行作为矩阵,然后第8行到第12行作为矩阵,然后第14行到第18行作为矩阵,依此类推......
谢谢!
答案 0 :(得分:1)
您可以按如下方式阅读文本文件:
%Open text file
f = fopen('num.txt', 'r');
num_matrices = 1000;
%Initialize cell array - hold matrices.
C = cell(num_matrices, 1);
for i = 1:num_matrices
%Read index (to be ignored).
idx = fscanf(f, '%f', 1);
%Read 6x3 matrix into A
A = fscanf(f, '%f', [3, 6])';
%Store matrix in cell array C.
C{i} = A;
end
fclose(f);
有关fscanf
文档,请参阅https://www.mathworks.com/help/matlab/ref/fscanf.html。