2012-02-23 75 views
0

如何写入单元格数组,其中单元格(1,1)是18乘1矩阵,其中每个元素都是具有属性FirstName,LastName,Program和Section的结构?下面是结构I有18项:在MATLAB中将结构移动到单元阵列中

studentStruct()

ANS =

18×1结构阵列字段:

FirstName 
LastName 
Program 
Section 
Midterm 
Final 
Quiz1 
Quiz2 
Quiz3 
Quiz4 
Quiz5 

如果我选择访问studentStruct(1,1 )这是我得到的:

ans =

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

以目前OP的问题的措辞,这是正确的答案。 – upperBound 2012-02-23 15:32:45