MATLAB从文本文件中提取数据并将行转换为向量的最佳方法?

时间:2016-10-26 04:40:35

标签: matlab

我在尝试从attached text file ('scratch.txt')中提取数据时遇到了很多问题。我的目标是将文本文件中的每一行转换为1 x n向量,其中n是文本文件行中的变量数。我还需要确保提取到这些向量中的每个值都是一个8字节的浮点数 这是我到目前为止所做的,但我不知道如何将我目前的输出转换为矩阵:

fid = fopen('scratch.txt');
tline = fgetl(fid);
while ischar(tline)
    disp(tline)
    tline = fgetl(fid);
end

目前这是我得到的输出:

4   3       
1   10      
2   30
3   20
4   0
1   4 1 
2   1 3
3   3 2
1.e7    1.339   .5      
4           
1 5 3 4     
1       
7 5.0   

1 个答案:

答案 0 :(得分:0)

使用str2numtline转换为数字行向量 由于每行中有不同数量的元素,因此无法将数据转换为矩阵:矩阵(根据定义)每行中的元素数量相同。
您可以做的是将行存储在cell array

res = {};
fid = fopen('scratch.txt');
tline = fgetl(fid);
while ischar(tline)
    res{end+1} = str2num(tline);
    tline = fgetl(fid);
end