读取CSV文件中双引号中包含的数值

时间:2018-05-25 11:33:37

标签: matlab csv

我尝试使用MATLAB从CSV文件的表中提取数据(以便我可以绘制它)是徒劳的。 CSV文件与我之前遇到的任何文件都不同,可在此处找到:https://www.bis.org/statistics/full_webstats_credit_gap_dataflow_csv.zip

问题是,在CSV文件中,所有内容都以双引号标注,例如; “私人非金融部门”,“”或“-57.2”。因此,当我将MATLAB函数readtabletextscantable2array用于仅包含数字的部分时,它将它们作为单元格的向量输出,例如:1×5单元格数组; '56.6' '57' '57.2' '57.9' '58.3'

如果我然后调用单个单元格,则将其输出为T{1}='56.6',但在工作区中将其视为Size 1x4Value '56.6',即MATLAB不会将其视为数字56.6但是一组符号。

有人可以告诉我如何在MATLAB中使用这个复杂的CSV文件,以便我可以绘制特定行中的数据吗?

提前致谢!

编辑:在使用%qreadtable

时,我尝试了不同的格式,例如textscan

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点但是如果你已经想出如何提取包含所需数据的单元格数组的子集,你可以使用str2double简单地转换它: / p>

>> ca = {'56.1' '13' '12.2' '4.7'}

ca =

  1×4 cell array

    '56.1'    '13'    '12.2'    '4.7'

>> str2double(ca)

ans =

   56.1000   13.0000   12.2000    4.7000