我在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
这更多的是美学和演示目的,因为无论新领域是在开始还是结束,它都不会真正影响结构的使用方式。
答案 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)是制作一个全新的结构,并按照您希望它们显示的顺序将所有字段复制到其中。