【问题标题】:Matlab struct of vectors to vector of struct conversion向量的Matlab结构到结构转换的向量
【发布时间】:2017-04-12 21:02:13
【问题描述】:

如何在没有 for 循环的情况下快速将数组 x(1:N)、y(1:N) 转换为具有字段 .x 和 .y 的结构 S(1:N)? 我可以轻松地将 x, y 转换为数组结构:

S.x = x; S.y = y;

由于我需要处理单独的 (xi, yi) 集合,我如何将其转换为结构数组? 我找到了通过表格类型执行此操作的解决方案,但我不喜欢此解决方案:

S = table2struct(struct2table(S))

【问题讨论】:

    标签: arrays matlab vector matlab-struct


    【解决方案1】:

    您应该在第一次将xy 转换为元胞数组后直接使用struct。当传递给struct 的值是元胞数组时,这会产生一个与该元胞数组具有相同维度的多元素struct

    S = struct('x', num2cell(x), 'y', num2cell(y));
    

    【讨论】:

    • 谢谢,从两个 1000000x1 向量创建结构向量大约需要 0.2 秒,而使用 table2struct-struct2table 方法需要 0.7 秒。
    猜你喜欢
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多