【问题标题】:Matlab: Is there a way to simplify the command to create dataset arrays for large numbers of variables?Matlab:有没有办法简化为大量变量创建数据集数组的命令?
【发布时间】:2011-05-05 04:05:35
【问题描述】:

我想从几个这样的结构创建一个数据集数组:

data=dataset(S(1,1).gen_bin, S(1,2).gen_bin, S(1,3).gen_bin, S(1,4).gen_bin)

对于我当前的问题,我需要解决多达 30 个这样的变量。我的问题是,是否有一种方法可以有效地缩短此命令,例如:

data=dataset(S(1,1).gen_bin, S(1,2).gen_bin, ... S(1,30).gen_bin)

【问题讨论】:

    标签: arrays matlab dataset


    【解决方案1】:

    假设 dataset 是一个函数,您将 30 条数据传递给该函数,您可以将 return data from the structure array Scomma-separated list 的形式直接传递给函数,如下所示:

    data = dataset(S(1,1:30).gen_bin);
    

    如果S是一个只有30个元素的结构体数组,那么你可以让它更简单:

    data = dataset(S.gen_bin);
    

    【讨论】:

    • 感谢您的快速回复。我以为我以前尝试过类似的方法,但我一定做错了什么。
    • 我还有一个变量 x,其中包含所有 30 个变量名。我可以用它来替换通用 Var1 - Var30 吗?
    • @Mike:看起来我最终在我的回答 here 中解决了你的额外问题。您可以通过将您的结构元素收集在一个单元格数组中来调整上述问题的答案,例如varData = {S.gen_bin}.';
    猜你喜欢
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2016-03-26
    相关资源
    最近更新 更多