Подмножество значений каждого поля в структуре MATLAB - PullRequest
3 голосов
/ 28 января 2011

скажем, имеют структуру, называемую данными, с полями, называемыми данными1, данными2, данными3, данными4, в которых много элементов. Но я хочу создать переменную newdata, которая имеет те же поля, но только первые 100 элементов каждого поля в нем. Кто-нибудь знает быстрый способ сделать это без петли или метода грубой силы?

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

1 Ответ

8 голосов
/ 28 января 2011

Использование 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...