2011-03-14 68 views
6

使用textscan()時,我使用textscan來從文件中讀取數據忽略「字被讀出的數據是:在MATLAB

"ABC",0.156 
"DEF",0.125 
"GHI",0.101 

我的代碼 - data = textscan(fid, '%s %f', 'Delimiter', ',');

數據{1}來作爲

'"ABC"' 
'"DEF"' 
'"GHI"' 

我想要的數據{1}作爲 -

'ABC' 
'DEF' 
'GHI' 

最後,如何可以有答案爲

data = 
'ABC' [0.156]; 
'DEF' [0.125]; 
'GHI' [0.101]; 

,而不是使用數據{1}和數據{2}。謝謝!

回答

4

實際上有兩種方法在讀取字符串時忽略"字符。由於每TEXTSCAN文檔,可以使用%q格式而不是%s格式:

data = textscan(fid,'%q %f','Delimiter',','); 

或者您可以使用%s格式讀取的字符串和使用功能STRREPdata{1}刪除"字符:

data{1} = strrep(data{1},'"',''); 

然後,您可以使用函數NUM2CELLdata{2}中的數值數組轉換爲單元格數組,以便您可以將它concatenate它用繩子在data{1}單元陣列:

>> data = [data{1} num2cell(data{2})]; 

data = 

    'ABC' [0.1560] 
    'DEF' [0.1250] 
    'GHI' [0.1010] 
1

爲了擺脫雙引號的使用

data = textscan(fid, '%q %f', 'Delimiter', ','); 

其中%q確實神奇。