Програмиране на M-функции
8. Масиви от структури.
Може да е желателно да се комбинират цифрови и текстови данни под едно име (например резултатите от физически експерименти, данни от преброяването на населението и т.н.). За тази цел MATLAB предоставя специален тип данни - struct (структура).
Променливите от тип struct съдържат няколко имена полета. Нека създадем променлива MyStruct1, състояща се от две полета: едно числово поле с име на данни и едно текстово поле с име:
MyStruct1.name = '1-ви резултат';
MyStruct1.data = [1, 2.5; -7,8, 2,3];
Името на полето е отделено от името на променливата с точка. Този кодов фрагмент създава 1 x 1 масив MyStruct1 от тип struct.
Добавете втория елемент към новосъздадения масив MyStruct1:
MyStruct1 (2) .name = '2-ри res-t';
MyStruct1 (2) .data = [-5,7, -2,5; 7.1, 8.4];
Полученият масив е 1x2. Това е лесно да се види, ако въведете името на променливата MyStruct1 в командния прозорец на MATLAB и натиснете клавиша Enter. В резултат на това системата ще покаже не съдържанието на този масив, а неговата структура:

Можете допълнително да добавяте елементи към този едномерен масив. Доста очевидно е, че всички елементи на масив от структурна структура имат еднакъв брой полета с фиксирани имена. Ако не зададете изрично стойността на което и да е поле, то автоматично ще му бъде присвоен празен масив [].
Наборът от полета на масив от структури може да се променя динамично. Например, след като дефинирахме масив MyStruct1 от тип структура с размер 1x2 с двете гореспоменати полета (име и данни), можем да изпълним заданието
MyStruct1 (1) .field = 'Трето поле';
след което масивът от структури вече ще има три полета - име, данни и поле. Тъй като вторият елемент на масива MyStruct1 няма изрично зададено поле, той е равен на празен масив:
MyStruct1 (2) .поле
ans =
Ако два масива от структури имат еднакъв набор от полета, тогава групово присвояване на формуляра
MyStruct1 (3) = AnotherStruct (2);
когато стойностите на всички полета на втория елемент на масива AnotherStruct се копират в полетата на третия елемент на масива MyStruct1.