MATLAB - 在现有结构的开头添加一个字段

时间:2015-04-27 18:23:07

标签: matlab data-structures struct concatenation

我在MATLAB中有1x100000结构。在我看来,我需要为它添加一个字段,这很简单。但是我似乎无法将字段添加到开头,即将新字段作为第一个字段。

我的结构看起来像这样

DB(kk).StudyDate
DB(kk).StudyTime
DB(kk).PatientName

我希望成功

DB(kk).PatientID  <---- new field
DB(kk).StudyDate
DB(kk).StudyTime
DB(kk).PatientName

而不是

DB(kk).StudyDate
DB(kk).StudyTime
DB(kk).PatientName 
DB(kk).PatientID  <---- new field

这更多的是美学和演示目的,因为无论新领域是在开始还是结束,它都不会真正影响结构的使用方式。

2 个答案:

答案 0 :(得分:3)

为此目的存在orderfields函数:

%   Order based on permuting current field ordering
DB = struct('StudyDate','2015/04/27','StudyTime',now(),'PatientName','Baz Bar');
DB.PatientID = dec2hex(randi([1,2^32]));
DB = orderfields(DB,[4,1,2,3]);

%   Does the same with explicit fieldnames
DB = struct('StudyDate','2015/04/27','StudyTime',now(),'PatientName','Baz Bar');
DB.PatientID = dec2hex(randi([1,2^32]));
DB = orderfields(DB,{'PatientID','StudyDate','StudyTime','PatientName'});

答案 1 :(得分:0)

唯一的方法(AFAIK)是制作一个全新的结构,并按照您希望它们显示的顺序将所有字段复制到其中。

相关问题