如何修复importdata()的结果“不支持此类变量的点索引”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修复importdata()的结果“不支持此类变量的点索引”相关的知识,希望对你有一定的参考价值。
我正在尝试从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
的代码行时才会这样做。为什么将结构转换为单元格,如何访问我的数据?提前致谢。
答案
如果那些双引号确实在你的输入文件中,那就是绊倒importdata
。这些引号使它认为每一行都是一个字符串,而不是二维数组中的一些空格分隔值。在这种情况下,每行只有一行文本,importdata
回退到返回一个单元格数组,而不是使用data
,textdata
和colheaders
字段返回该结构。
所以摆脱那些双引号!
或者使用textscan
或readtable
代替。 readtable
可能是你想要的两个人。
以上是关于如何修复importdata()的结果“不支持此类变量的点索引”的主要内容,如果未能解决你的问题,请参考以下文章