2016-12-14 204 views
0

我使用Matlab中的csvread語法m =csvread('reserve2.csv',7,3,[7,3,9,4])從CSV文件中讀取逗號分隔的值。不幸的是在CSV文件中指定的行和列數列與周圍雙引號,並且我收到以下錯誤:如何在Matlab中的CSV文件中的數字周圍刪除雙引號

Error using dlmread (line 143) Mismatch between file and format string. Trouble reading 'Numeric' field from file (row number 1, field number 4) ==> "0","568"\n

Error in csvread (line 49) m=dlmread(filename, ',', r, c, rng);

我如何可以調用csvread這樣,它甚至可以當他們閱讀的價值在雙引號中?或者我如何編寫代碼來擺脫CSV文件中的引號?

回答

0

在這個文件中有幾種閱讀方式。

  1. MATLAB的TEXTSCAN函數可以解析文本並忽略用雙引號(「」)括起來的分隔符。使用具有'%q'格式類型的TEXTSCAN函數來標識由雙引號劃定的字符串。例如:

str ='a,A,「a,apple」'; out = textscan(str,'%s%s%q','delimiter',',') 該命令將生成一個包含'a','A'和'a,apple'的單元數組'out' 。

  • 如果你是一個Windows平臺上,並安裝了Microsoft Excel,您可以使用帶有XLSREAD以下語法來讀取數據到兩個單元陣列:

    [num_data text_data] = xlsread(文件名);

  • 執行該命令後,數據將被複制到該不同的方式處理數據2個不同的陣列:

    「num_data」 - 僅包含數字數據;字符串和空字段將被轉換爲NaN

    「text_data」 - 包含以字符串形式讀入的所有數據。兩個雙引號之間的文本將被解析爲單個字符串

    1. 創建自定義函數以使用多個FREAD或FGETL命令解析文件。

    有關這些功能的更多信息,請參閱參考文獻,通過執行在MATLAB命令提示以下:

    DOC textscan DOC xlsread DOC的fread DOC fgetl

    相關問題