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

use*_*944 3 matlab

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

                           data1: [3744x1 double]
                           data2: [3744x1 double]
                           data3: [3744x1 double]
                           data4: [3744x1 double]
Run Code Online (Sandbox Code Playgroud)

Jon*_*nas 8

使用STRUCTFUN

newdata = structfun(@(x)x(1:100),data,'uniformOutput',false);
Run Code Online (Sandbox Code Playgroud)

例:

>> 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]
Run Code Online (Sandbox Code Playgroud)

  • @ user295944:如果您觉得答案有用,请考虑接受. (2认同)