MATLAB结构中每个字段的值的子集

时间:2011-01-28 00:44:25

标签: matlab

说有一个名为data的结构,其中包含名为data1 data2,data3,data4的字段,其中包含许多项。但我想创建一个变量newdata,它具有相同的字段,但只有每个字段的前100个项目。有没有人知道一个快速的方法来做这个没有循环或暴力方法?

                           data1: [3744x1 double]
                           data2: [3744x1 double]
                           data3: [3744x1 double]
                           data4: [3744x1 double]

1 个答案:

答案 0 :(得分:8)

使用STRUCTFUN

newdata = structfun(@(x)x(1:100),data,'uniformOutput',false);

示例:

>> data = struct('a',1:10,'b',1:10);
>> newdata = structfun(@(x)x(1:3),data,'uniformOutput',false)
newdata = 
    a: [1 2 3]
    b: [1 2 3]