【发布时间】:2013-02-17 14:46:06
【问题描述】:
我在matlab 中有以下代码并试图从结构中删除一个元素:
function test()
C = struct;
C.(sprintf('Ck')) = [1 6 8 9; 8 6 9 7; 7 6 67 6; 65 7 8 7];
ck_length = length(C.(sprintf('Ck')));
for i=1:ck_length
if C.(sprintf('Ck'))(i)> 10
cleared = rmfield(C.(sprintf('Ck')), C.(sprintf('Ck'))(i));
end
end
end
但是,当我运行程序时,出现如下所示的错误:
>> test
??? Error using ==> rmfield at 19
S must be a structure array.
Error in ==> test at 89
cleared = rmfield(C.(sprintf('Ck')), C.(sprintf('Ck'))(i));
我该如何解决这个问题?
谢谢。
【问题讨论】:
-
您是将
C.Ck视为矩阵还是向量?一旦丢弃大于 10 的元素,它的形状会发生什么变化?您是否有意使用numel而不是length? -
顺便说一句,下次尝试编辑您的问题,而不是删除并重新发布...
标签: matlab struct runtime-error