如何修复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回退到返回一个单元格数组,而不是使用datatextdatacolheaders字段返回该结构。

所以摆脱那些双引号!

或者使用textscanreadtable代替。 readtable可能是你想要的两个人。

以上是关于如何修复importdata()的结果“不支持此类变量的点索引”的主要内容,如果未能解决你的问题,请参考以下文章

matlab如何读取txt文件

经典 asp 中的索引服务“不支持此类接口”

子查询失败:由于内部错误,不支持此类关联子查询模式;

s-s-rS 错误:不支持此类接口

matlab中的importdata和 load 的区别在哪

[Amazon](500310) 无效操作:尚不支持此类IN/NOT IN查询;