我有一个制表符分隔的文本文件,后缀为.RAW。
如何在MATLAB中将文件中的数据加载到矩阵中?
我找到了readtable
,但它不支持以后缀.RAW结尾的文件。
我是否真的必须使用fread
,fscanf
等来简单地将文本文件加载到矩阵中?
答案 0 :(得分:1)
您可以使用dlmread()
功能。它会将ASCII文本文件中的数据读入矩阵,并让您自己定义分隔符。标签的分隔符为'\t'
。
>> M = dlmread('Data.raw', '\t')
M =
1 2 3
4 5 6
7 8 9
仅为了您的信息,还有tdfread()
功能,但我不建议使用它,除非在非常具体的情况下。 dlmread()
是一个更好的选择。
答案 1 :(得分:-1)
.RAW是一种通用文件扩展名。您应该知道RAW文件的格式(特别是如果您的文件包含数字,数据结构等的组合)。如果它是包含单个2D表格的简单文本文件,您可以使用fscanf
,fread
,fgetl
,fgets
等轻松阅读
以下是2D表格(矩阵)的简单示例:
假设表的每一行都用以下行的回车符分隔。我们可以按fgetl()
读取每一行,然后使用str2num()
提取数字。
fid=fopen('YourTextFile.RAW');
Data=[];
i = 0;
while 1
i = i + 1;
tline = fgetl(fid);
if ~ischar(tline), break, end
Data(i,:) = str2num(tline);
end
fclose(fid);
disp(Data)
对于更复杂的数据结构,应该更改代码。
对于2D表(特殊情况),上述简单代码可以通过dlmread()
函数轻松交换。