我想讀取一個文本文件,它具有如下格式的MATLAB。我正在將整行讀取爲一個字符串。如何在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')
讀取線作爲字符串,但刪除所有的空間。
我想讀取一個文本文件,它具有如下格式的MATLAB。我正在將整行讀取爲一個字符串。如何在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')
讀取線作爲字符串,但刪除所有的空間。
fgetl(fid)
將執行您要查找的內容。 Newline被剝離。
默認情況下,使用textscan將空格視爲分隔符。 在調用時指定了一個不同的分隔符(不存在於您的數據中),應該這樣做,添加這個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
希望這有助於
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
如果你想讀整個文件爲字符串(你的文件只有一個行),請嘗試:
s = fileread('input.txt'); %# returns a char vector
s = strtrim(s); %# trim whitespaces
如果你看一下FILEREAD功能的源代碼,它基本上是讀以二進制模式文件作爲字符數組:fread(fid, '*char')
使用:
clc;
fid = fopen('fileName.m');
while ischar(tline)
disp(strcat("Line imported: ",tline))
tline = fgetl(fid);
end
fclose(fid);
這是最好的解決方案。 –