【问题标题】:How to remove double quotation marks around numbers in a CSV file in Matlab如何在 Matlab 中删除 CSV 文件中数字周围的双引号
【发布时间】:2016-12-14 19:38:32
【问题描述】:

我正在使用 Matlab 中的 csvread 语法 m =csvread('reserve2.csv',7,3,[7,3,9,4]) 从 CSV 文件中读取逗号分隔值。不幸的是,CSV文件中指定行和列中的数字用双引号括起来,我收到以下错误:

使用 dlmread 时出错(第 143 行) 文件和格式字符串不匹配。 从文件中读取“数字”字段时遇到问题(行号 1,字段号 4)==> "0","568"\n

csvread 中的错误(第 49 行) m=dlmread(文件名, ',', r, c, rng);

如何调用 csvread 以便它可以读取双引号中的值?或者如何编写代码来去掉 CSV 文件中的引号?

【问题讨论】:

    标签: matlab csv quotation-marks


    【解决方案1】:

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

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

    str = 'a,A,"a,apple"'; out=textscan(str,'%s%s%q', '分隔符',',') 此命令将生成一个元胞数组 '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 医生恐惧症 doc fgetl

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2011-04-19
      • 2014-05-05
      • 1970-01-01
      • 2018-07-27
      • 2020-07-03
      相关资源
      最近更新 更多