Я не знаю C, поэтому я не знаю, как ваш код инициализирует структуру.Однако рассмотрим следующие две возможности:
1.Структура массив data
с 100 элементами, каждое из которых имеет два поля x
и y
Вы можете инициализировать пустую структуру с помощью
data = struct('x', cell(100,1), 'y', cell(100,1));
и вы получаете доступ к каждому элементу массива структуры как data(1)
, и каждый из них является структурой.Как правило, они используются, когда у вас есть несколько эквивалентных «вещей» с одинаковым набором свойств, но разными значениями для каждого.
Пример:
elements = struct(...
'name', {'Hydrogen', 'Helium', 'Lithium'},...
'atomicWeight', {1, 4, 7}, ...
'symbol', {'H', 'He', 'Li'});
elements(1)
ans =
name: 'Hydrogen'
atomicWeight: 1
symbol: 'H'
Таким образом, вы можете получить доступ к каждой отдельной структуре, чтобы получить ее свойства.Теперь, если вы хотите добавить массив массива со следующими 10 элементами в этот список, вы можете использовать cat
, так же, как и для матриц.
2.Структура data
с двумя полями x
и y
, каждое из которых содержит 100 элементов
. Вы можете инициализировать это как
data = struct('x',zeros(100,1),'y',zeros(100,1));
и получить доступ к каждому элементу поля как data.x(1)
.Обычно это используется, когда у вас есть одна «вещь» с несколькими свойствами, которые могут содержать разные значения.
Пример:
weather=struct('time',{{'6:00','12:00','18:00','24:00'}},...
'temperature',[23,28,25,21]);
Как только вы понимаете структуры и массивы структур и то, как онииспользованные и проиндексированные, вы можете использовать их более сложными способами, чем на простой иллюстрации выше.