我正在尝试在MATLAB中读取一个文本文件,其格式如下所示。我希望将整行读作字符串。
2402:0.099061 2404:0.136546 2406:0.447161 2407:0.126333 2408:0.213803 2411:0.068189
我尝试了几件事。
textscan(fid, '%s')
读取该行,但将该行拆分为空格中的单元格。
fscanf(fid, '%s')
将该行作为字符串读取,但删除所有空格。
答案 0 :(得分:8)
fgetl(fid)
会做你想要的。 Newline被剥夺了。
答案 1 :(得分:2)
textscan
默认使用空白分隔符。将分隔符设置为空字符串:
>> q = textscan(fid, '%s', 'Delimiter', '');
>> q{1}{:}
ans = 2402:0.099061 2404:0.136546 2406:0.447161 2407:0.126333 2408:0.213803 2411:0.068189
答案 2 :(得分:1)
如果您想将整个文件读为字符串(您的文件只有一行),请尝试:
s = fileread('input.txt'); %# returns a char vector
s = strtrim(s); %# trim whitespaces
如果你看一下FILEREAD函数的源代码,它基本上是以二进制模式读取文件作为一个字符数组:fread(fid, '*char')
答案 3 :(得分:0)
空格视为分隔符。 在调用时指定一个不同的分隔符(在数据中不存在),应该这样做,添加这个f.e。
'delimiter', '|'
您也可以使用
file = textread(<fileref goes here>, '%s', 'delimiter', '\n')
然后
file{1,1}
将返回
ans =
2402:0.099061 2404:0.136546 2406:0.447161 2407:0.126333 2408:0.213803 2411:0.068189
希望这会有所帮助
答案 4 :(得分:0)
使用:
clc;
fid = fopen('fileName.m');
while ischar(tline)
disp(strcat("Line imported: ",tline))
tline = fgetl(fid);
end
fclose(fid);