访问matlab结构中的多个字段

时间:2015-12-13 16:07:03

标签: arrays matlab struct

我正在尝试访问结构中的多个字段,以将数据从datenum更改为datetime。结构由以下内容创建:

    DATA=struct('Id',[],'Date',[],'Value',[]);

由于接收数据的风格,有多个DATA,每个DATA都有一个Value。所以一个足够的例子是

    Data(1).Date=2;
    Data(2).Date=3;

现在我想将条目更改为datetime,但保留数据结构。对于这个例子,我们可以说将日期定为。

    Data(1).Date=4;
    Data(2).Date=9;

该结构有大约50000个enries,arrayfun()没有提供足够有效的解决方案。我无法找到一种方法来转换整个Data.Date广告数组deal()在每个字段中写入所有50000个日期,并以其他方式收到错误。有人有解决方案来更改整个数组并将其写回数组的每个字段吗?

2 个答案:

答案 0 :(得分:3)

您可以将所有值放入数组中,然后在计算结果后重新填充结构。

{{1}}

答案 1 :(得分:2)

使用一个小的绕行转换表单结构到数组,然后进行数学运算,然后从数组转换为单元格到逗号分隔列表到结构:

arr=[Data(:).Date];
arr=num2cell(arr.^2);
[Data(:).Date]=arr{:};