0

我正在尝试使用 textscan 从文本文件中读取数据。文本文件由 3 个空格分隔,有 100 行数据和 9 列。我可以让它返回我认为是 100 x 1 的矩阵。我试图弄清楚如何让代码返回一个 100 x 9 的矩阵。下面是我正在使用的代码......

fid = fopen('file.txt','r');
data = textscan(fid, '   %d   %d   %d   %d   %d   %d   %d   %d   %d\n');
disp(data);     %This command outputs [100x1 int32]
fprintf('data is: %s\n', data{1}); %this outputs garbage
fprintf('data is: %s\n', data{2}); %this outputs garbage
fprintf('data is: %s\n', data{3}); %this outputs garbage
fprintf('data is: %s\n', data{4}); %this outputs garbage
fprintf('data is: %s\n', data{5}); %see output below
Columns 1 through 4

[100x1 int32]    [100x1 int32]    [100x1 int32]    [100x1 int32]

Columns 5 through 8

[100x1 int32]    [100x1 int32]    [100x1 int32]    [100x1 int32]

Column 9

[100x1 int32]

fclose(fid);

如您所见,当我访问数据时,我得到了一些接近我想要的结果{5}。我的最终目标是创建一个包含 1-8 列的矩阵,然后创建一个包含第 9 行的列矩阵。下面是数据在文本文件中的格式。第一列之前有 3 个空格,之后每列之间有 3 个空格。

1.2000000e+02   1.0000000e+00   3.2000000e+00   7.2300000e+02   1.7000000e+00   9.0440000e+03   9.6700000e+02   6.8000000e+01   6.4580000e+01

提前感谢您的帮助。我一直在搞乱 textscan 参数和分隔符,但没有运气。我对 textscan 不熟悉,但我读过我应该在这种情况下使用它,因为正在导入的数据中有非数字字符。

4

1 回答 1

1

您可以使用cell2mat从单元格元素创建矩阵

matrix1 = cell2mat(data(1:8));
matrix2 = data{9};
于 2013-09-09T05:45:18.223 回答