为了简单起见,让我们坚持 this official Matlab example .
我运行以下代码,并创建了一个包含三个字段的结构。
patient.name = 'John Doe';
patient.billing = 127.00;
patient.test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205];
然后,为了创建结构体数组,我只需执行以下操作。
patient(2).name = 'Ann Lane';
patient(2).billing = 28.50;
patient(2).test = [68, 70, 68; 118, 118, 119; 172, 170, 169];
此时我有一个结构体数组,明确表示为 this picture :
问题来了:如何清空结构体patent(2)
的所有字段?
理想情况下(请原谅滥用符号)我想做一些类似 patent(2).* = {}
.
逐个调用字段不是一种选择,因为在我的实际代码中我有很多字段,我也无法将结构转换为单元格。
提前致谢!
最佳答案
如果此操作频繁,最好准备一个 EMPTY_PATIENT
:
EMPTY_PATIENT = struct( ...
'name', {}, ...
'billing', {}, ...
'test', {} ...
);
然后使用简单的赋值(速度非常快)来清空该位置:
patient(2) = EMPTY_PATIENT;
关于arrays - Matlab中清空结构体数组的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24828528/