首页 > 解决方案 > MATLAB:访问单元格列时,此类型的变量不支持点索引

问题描述

我正在从表中提取数据并将 1*1 游标存储在 curs 中。

代码是这样的:

curs = exec(conn,['Select D***V***e,D***T***S***p From ' **** ' where Attribute = "****"']);
    curs = fetch(curs);
    Data = curs.Data;
    close(curs);
s = string(Data.D***T***S***p);

这给了我错误| | | 这种类型的变量不支持点索引。WaveletCode 中的错误(第 11 行)s = string(Data.DataTimeStamp);|||

数据是以下格式的 30000*2 单元格

84.3363037100000    '2017-06-01T00:00:03.5+10:00'
99.5158004800000    '2017-06-01T00:01:03.5+10:00'

有人可以帮我弄清楚他的代码有什么问题。

标签: matlabindexing

解决方案


您的数据是一个元胞数组,第一列中包含 DataValues,第二列中包含 DataTimeStamp。元胞数组可以包含任何数据类型(字符串、数组、结构体、函数句柄...),但是可以在整个数组中具有一致类型的元胞数组上进行一些转换。阅读有关cell数据类型的文档以获取更多信息。

例如

%Select first column (cell array of scalars) and convert to array
Value = cell2mat(Data(:,1));
%Select second column (cell array of char) and convert to a string array
TimeStamp = string(Data(:,2));

推荐阅读