我必须在文本文件的同一行中读取不同的数字。如果我不知道我必须读多少个数字,怎么能把它们传递给一个数组(对于每一行)?
我考虑过读取每个数字并将其传递给数组,直到找到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
谢谢
答案 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();