2016-07-19 2 views
0

Мне нужно получить доступ к структуре, которая находится внутри структуры: у меня есть основная структура, называемая GlobalStruc, которая имеет много элементов (мои «пакеты»). Каждый пакет содержит много информации, то есть имеет много полей. Одна из них сама по себе является структурой с несколькими полями. Мне нужно иметь доступ к каждому из этих полей. Есть идеи?Доступ к определенному полю в структуре внутри структуры Matlab

Подводя итог: GlobalStruc.DetailsStruc, который содержит много полей и имеет множество индексов. Как я могу получить к ним доступ? Если более удобно, могу ли я создать массив с этими полями? Нечто подобное CharacteristicOfThePacket = GlobalStruc (индекс) .DetailsStruc.FieldThatIWant

Ниже приведен пример того, как была построена основная структура: `

GlobalStruc (1) .data1 = 1; GlobalStruc (1) .data2 = 12; GlobalStruc (1) .moredata.velocity = 327; GlobalStruc (1) .moredata.bbeta = 3.2; GlobalStruc (2) .data1 = 23; GlobalStruc (2) .data2 = 56; GlobalStruc (2) .moredata.velocity = 442; GlobalStruc (2) .moredata.bbeta = 1.7; GlobalStruc (3) .data1 = 4.3; GlobalStruc (3) .data2 = 7; GlobalStruc (3) .moredata.velocity = 556; GlobalStruc (3) .moredata.bbeta = 1.1;

` Теперь я хотел бы сказать:

myVelocities=GlobalStruc(:).moredata.velocity; 

Но я получаю эту ошибку:

Expected one output from a curly brace or dot indexing expression, 
but there were 3 results. 

Благодарю вас так много,

+1

[Уплотненный структура] (http://ch.mathworks.com/help/ matlab/matlab_prog/access-data-in-nested-structures.html) – obchardon

ответ

0

Вы не можете в одиночная линия, но вы можете сделать:

InnerStruct = [GlobalStruc.moredata]; 

Затем доступ к первому элементу:

InnerStruct(1) 

ans = 

    velocity: 327 
    bbeta: 3.2000 

или й элемент структуры:

InnerStruct(i) 
+0

Дело в том, что у меня есть много индексов в основной структуре, и они имеют одни и те же поля (имя) ... Я обновил свой пост;) спасибо для вашей помощи. – LeChat

+0

Обновлено мой ответ –

+0

Что делать, если мне нужно назначить скорость элемента с вектором A? На самом деле это мой вопрос;) Спасибо за вашу помощь! – LeChat

Смежные вопросы