首页 > 解决方案 > 有没有办法将双数组转换为结构数组?

问题描述

有没有办法将双数组转换为结构数组并将其放在一个字段下?

例如,假设我们从调用中得到一个双精度数组,cellfun输出数组看起来像

data=[1,2;3,4];

我们能在struct哪里得到一个 S

S=struct;
for i=1:numel(data)
        S(i).data=data(i);
    end
end

使用本机功能还是有效地获得 S?(最后视觉)

如果有方法,结果struct数组可以保留原始双数组的维度吗?该方法可以应用于输出cellfun为双数组的输出吗?

在我的特定应用程序中, mydata是调用的(统一)输出,cellfun当我设置 时S.data=cellfun(...),结果是一个 1 元素结构数组,其中S.datam×n 双数组来自cellfun(...)。我可以做些什么来分配数组元素?

(我手头的任务涉及每个查询处理 10k 个数据点,每个任务大约有 16 个查询。所以速度很重要。如果没有有效的方法,我会知道避免 struct 用于这种特定类型的任务。所以评论在这方面也很有帮助。)

在此处输入图像描述

标签: arraysmatlabstruct

解决方案


使用structnum2cell

data = [1,2;3,4];
S = struct ('data', num2cell(data));

推荐阅读