MATLAB - 将字段添加到现有结构的开头

MATLAB - Adding a field to the begining of an existing struct

我在 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

这更多的是为了美观和展示目的,因为它不会真正影响结构的使用方式,无论新字段是在开头还是结尾。

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

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'});