Matlab “如何修复”;此类型的变量不支持点索引;关于importdata()';s结果

Matlab “如何修复”;此类型的变量不支持点索引;关于importdata()';s结果,matlab,structure,Matlab,Structure,我正在尝试从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

我正在尝试从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\u struct
显示为单元格而不是结构,但仅当我包含初始化
file\u数据的代码行时才会显示。为什么要将结构转换为单元格?如何访问数据?提前感谢。

如果输入文件中确实存在这些双引号,那就是出现问题的原因
importdata
。这些引号使它认为每一行都是一个字符串,而不是二维数组中一些空格分隔的值。在这种情况下,如果每行上只有一行文本,
importdata
返回一个单元格数组,而不是包含
data
textdata
colheaders
字段的结构

所以,摆脱那些双引号


或者改用
textscan
readtable
readtable
可能是您想要的其中两个。

如果输入文件中确实存在这些双引号,这就是出现问题的原因
importdata
。这些引号使它认为每一行都是一个字符串,而不是二维数组中一些空格分隔的值。在这种情况下,如果每行上只有一行文本,
importdata
返回一个单元格数组,而不是包含
data
textdata
colheaders
字段的结构

所以,摆脱那些双引号


或者改用
textscan
readtable
readtable
可能是您想要的其中两个版本。

请分享产生此问题的文件示例。请参见“U0.9330.05613.919 0.914-177.404-262.0590.000 0.000”“12.9770.05014.0380.972-177.387-262.139 0.100 0.000”“12.9470.05314.0731.040-177.299-262.0860.000”“262.9770.0514.038 0.972-177.387-262.139 0.100.000”“12.073 1.040-177.299-262.0860.000”这些是正在处理的其中一个文件的前几行。如果格式设置已关闭,请道歉。请将原始问题包括在内。MCVE意味着您提供的代码应该在示例文件中给出该错误。因此,请确保“但仅当我包含初始化文件\ u数据的代码行时才这样做”,这毫无意义。该行不会更改
文件结构
。你在调试器中运行代码了吗?@Mike_Bau请学习如何格式化代码,使其清晰易读。请参阅请共享产生此问题的文件示例。请参见“U0.9330.05613.919 0.914-177.404-262.0590.000 0.000”“12.9770.05014.0380.972-177.387-262.139 0.100 0.000”“12.9470.05314.0731.040-177.299-262.0860.000”“262.9770.0514.038 0.972-177.387-262.139 0.100.000”“12.073 1.040-177.299-262.0860.000”这些是正在处理的其中一个文件的前几行。如果格式设置已关闭,请道歉。请将原始问题包括在内。MCVE意味着您提供的代码应该在示例文件中给出该错误。因此,请确保“但仅当我包含初始化文件\ u数据的代码行时才这样做”,这毫无意义。该行不会更改
文件结构
。你在调试器中运行代码了吗?@Mike_Bau请学习如何格式化代码,使其清晰易读。看见