2012-02-23 4 views
0

Как написать массив ячеек, где ячейка (1,1) является матрицей 18 на 1, где каждый элемент представляет собой структуру со свойствами FirstName, LastName, Program и Section? Вот структура у меня с 18 записей:Перемещение структур в массив ячеек в MATLAB

studentStruct()

ANS =

18x1 структура массив с полями:

FirstName 
LastName 
Program 
Section 
Midterm 
Final 
Quiz1 
Quiz2 
Quiz3 
Quiz4 
Quiz5 

Если я выбираю для доступа studentStruct (1,1) это то, что я получаю:

анс =

FirstName: 'Tom' 
LastName: 'Jones' 
    Program: 'Evening MBA' 
    Section: 81 
    Midterm: 63 
    Final: 59 
    Quiz1: 69 
    Quiz2: 85 
    Quiz3: 90 
    Quiz4: 100 
    Quiz5: 56 

ответ

1

Вы можете использовать STRUCT2CELL функцию:

studentCell = struct2cell(studentStruct)'; 

Чтобы иметь первые 4 структуры поля в отдельных клетках:

studentCell = mat2cell(studentCell(:,1:4), numel(y), ones(1,4)) 

числовое поле (например, раздел), можно преобразовать в числовой матрицы в массиве ячеек :

studentCell{4} = cell2mat(studentCell{4}); 
1

Если вы правильно поняли ваш вопрос, я думаю, вы могли бы использовать:

cellval = {studentStruct()}; 
+0

С текущей формулировкой вопроса ОП это правильный ответ. – upperBound

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