我正在尝试从csv文件导入数据。导入数据时,将创建一个具有两个字段的结构,但是两个结构都不可访问,因为会引发点索引错误。
这些是其中一个文件的前几行
"U0[m/s] U0_Sd U[m/s ] U_Sd L[N ] D[N] Horiz. Verti. 4/3/2019 3:21 PM"
"12.933 0.056 13.919 0.914 -177.404 -262.059 0.000 0.000"
"12.977 0.050 14.038 0.972 -177.387 -262.139 0.100 0.000"
"12.947 0.053 14.073 1.040 -177.299 -262.086 0.200 0.000"
"12.965 0.051 14.007 1.037 -177.271 -262.140 0.300 0.000"
代码如下:
path='directory_path';
files=dir(strcat(path,'*.csv'));
for file=files'
cur_file=(strcat(path,file.name));
file_struct=importdata(cur_file);
file_data=file_struct.data;
end
我得到的错误是“这种类型的变量不支持点索引”,但是结构应该能够点索引。另外,当我进入工作区时,变量file_struct
会显示为单元格而不是结构,但是只有当我包含初始化file_data
的代码行时才会显示。为什么将结构转换为单元格,如何访问数据?预先感谢。
答案 0 :(得分:0)
如果输入文件中确实存在双引号,那就是importdata
的原因。这些引号使它认为每一行都是单个字符串,而不是二维数组中的一些用空格分隔的值。在这种情况下,每行只有一行文本,importdata
会返回返回单元格数组,而不是返回带有data
,textdata
和{{1} }字段。
因此,请删除那些双引号!
或者使用colheaders
或textscan
代替。 readtable
可能就是您想要的两个。