如何在 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 文件中的引号?
这个文件有几种读取方式。
- MATLAB 的 TEXTSCAN 函数可以解析文本并忽略用双引号 (" ") 括起来的分隔符。使用具有“%q”格式类型的 TEXTSCAN 函数来识别由双引号分隔的字符串。例如:
str = 'a,A,"a,apple"';
out=textscan(str,'%s%s%q', 'delimiter',',')
此命令将生成一个元胞数组 'out',其中包含 'a'、'A' 和 'a,apple'.
如果您使用的是 Windows 平台并安装了 Microsoft Excel,则可以使用 XLSREAD 的以下语法将数据读入两个元胞数组:
[num_data text_data] = xlsread(文件名);
执行此命令后,数据将被复制到 2 个不同的数组,以不同方式处理数据:
"num_data" - 仅包含数字数据;字符串和空字段将被转换为 NaN
"text_data" - 包含以字符串形式读入的所有数据。两个双引号之间的文本将被解析为单个字符串
- 创建自定义函数以使用多个 FREAD 或 FGETL 命令解析文件。
有关这些函数的更多信息,请在 MATLAB 命令提示符下执行以下命令以参阅文档:
文档文本扫描
文档 xlsread
恐惧医生
文档 fgetl
我正在使用 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 文件中的引号?
这个文件有几种读取方式。
- MATLAB 的 TEXTSCAN 函数可以解析文本并忽略用双引号 (" ") 括起来的分隔符。使用具有“%q”格式类型的 TEXTSCAN 函数来识别由双引号分隔的字符串。例如:
str = 'a,A,"a,apple"'; out=textscan(str,'%s%s%q', 'delimiter',',') 此命令将生成一个元胞数组 'out',其中包含 'a'、'A' 和 'a,apple'.
如果您使用的是 Windows 平台并安装了 Microsoft Excel,则可以使用 XLSREAD 的以下语法将数据读入两个元胞数组:
[num_data text_data] = xlsread(文件名);
执行此命令后,数据将被复制到 2 个不同的数组,以不同方式处理数据:
"num_data" - 仅包含数字数据;字符串和空字段将被转换为 NaN
"text_data" - 包含以字符串形式读入的所有数据。两个双引号之间的文本将被解析为单个字符串
- 创建自定义函数以使用多个 FREAD 或 FGETL 命令解析文件。
有关这些函数的更多信息,请在 MATLAB 命令提示符下执行以下命令以参阅文档:
文档文本扫描 文档 xlsread 恐惧医生 文档 fgetl