我尝试使用MATLAB从CSV文件的表中提取数据(以便我可以绘制它)是徒劳的。 CSV文件与我之前遇到的任何文件都不同,可在此处找到:https://www.bis.org/statistics/full_webstats_credit_gap_dataflow_csv.zip
问题是,在CSV文件中,所有内容都以双引号标注,例如; “私人非金融部门”,“”或“-57.2”。因此,当我将MATLAB函数readtable
或textscan
与table2array
用于仅包含数字的部分时,它将它们作为单元格的向量输出,例如:1×5单元格数组; '56.6' '57' '57.2' '57.9' '58.3'
如果我然后调用单个单元格,则将其输出为T{1}='56.6'
,但在工作区中将其视为Size 1x4
和Value '56.6'
,即MATLAB不会将其视为数字56.6但是一组符号。
有人可以告诉我如何在MATLAB中使用这个复杂的CSV文件,以便我可以绘制特定行中的数据吗?
提前致谢!
编辑:在使用%q
或readtable
textscan
答案 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