如何在 Matlab 中删除 CSV 文件中数字周围的双引号

How to remove double quotation marks around numbers in a CSV file in Matlab

我正在使用 Matlab 中的 csvread 语法 m =csvread('reserve2.csv',7,3,[7,3,9,4]) 从 CSV 文件中读取逗号分隔值。不幸的是,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 文件中的引号?

这个文件有几种读取方式。

  1. MATLAB 的 TEXTSCAN 函数可以解析文本并忽略用双引号 (" ") 括起来的分隔符。使用具有“%q”格式类型的 TEXTSCAN 函数来识别由双引号分隔的字符串。例如:

str = 'a,A,"a,apple"'; out=textscan(str,'%s%s%q', 'delimiter',',') 此命令将生成一个元胞数组 'out',其中包含 'a'、'A' 和 'a,apple'.

  1. 如果您使用的是 Windows 平台并安装了 Microsoft Excel,则可以使用 XLSREAD 的以下语法将数据读入两个元胞数组:

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

执行此命令后,数据将被复制到 2 个不同的数组,以不同方式处理数据:

"num_data" - 仅包含数字数据;字符串和空字段将被转换为 NaN

"text_data" - 包含以字符串形式读入的所有数据。两个双引号之间的文本将被解析为单个字符串

  1. 创建自定义函数以使用多个 FREAD 或 FGETL 命令解析文件。

有关这些函数的更多信息,请在 MATLAB 命令提示符下执行以下命令以参阅文档:

文档文本扫描 文档 xlsread 恐惧医生 文档 fgetl