如何在MATLAB中读取包含数字的文本文件?

时间:2016-06-06 06:55:55

标签: matlab text-files

我必须在文本文件的同一行中读取不同的数字。如果我不知道我必须读多少个数字,怎么能把它们传递给一个数组(对于每一行)?

我考虑过读取每个数字并将其传递给数组,直到找到New Line字符。但是我有很多文件,所以这样做需要花费很多时间。 使用每个文件中的这个数组,我必须构建图。还有其他办法吗?

12 43 54 667 1 2 3 1 545 434 6 476
14 32 45 344 54 54 10 32 43 5 6 66

谢谢

2 个答案:

答案 0 :(得分:1)

您可以打开每个文件并逐行阅读,然后使用textscan(str,'%d')将每行转换为数组。

一个文件的示例:

fid = fopen('file.txt');

tline = fgetl(fid);
while ischar(tline)
    C = textscan(str,'%d');
    celldisp(C);
    tline = fgetl(fid);
end

fclose(fid);

您必须为每个文件运行代码,并使用数组C执行某些操作。

您可以阅读有关textscan功能的其他详细信息。

答案 1 :(得分:1)

在MATLAB中读取ASCII分隔的数字数据的方法是使用dlmread,如@BillBokeey在评论中已经建议的那样。这就像

一样简单
    var orderTotal = 100;
    double current = 0;
    var cards = list
        .OrderBy(x => x.Balance)
        .TakeWhile(card => 
         {              
            bool returnvalue = current < orderTotal; 
            current += card.Balance;
            return returnvalue;
        })
        .ToList();