2012-06-01 117 views
4

我想讀取一個文本文件,它具有如下格式的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')讀取線作爲字符串,但刪除所有的空間。

回答

8

fgetl(fid)將執行您要查找的內容。 Newline被剝離。

+0

這是最好的解決方案。 –

0

默認情況下,使用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 

希望這有助於

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 
1

如果你想讀整個文件爲字符串(你的文件只有一個行),請嘗試:

s = fileread('input.txt'); %# returns a char vector 
s = strtrim(s);    %# trim whitespaces 

如果你看一下FILEREAD功能的源代碼,它基本上是讀以二進制模式文件作爲字符數組:fread(fid, '*char')

0

使用:

clc; 
fid = fopen('fileName.m'); 

while ischar(tline) 
    disp(strcat("Line imported: ",tline)) 
    tline = fgetl(fid); 
end 

fclose(fid); 
相關問題