我有以下1-D单元格阵列:
obj = {'HotAirBalloon' 'Cloud' 'Sun' 'Lightning'};
我尝试使用for
循环以下列方式删除其元素:
for i = 1:4
obj (i) = [ ];
end
但是,我收到了错误:
要删除的元素的索引超出矩阵维度,并且以下元素保留在' obj'阵列:'云' '闪电'
如果我重复操作(for循环),则删除元素。
问题是什么?
答案 0 :(得分:2)
不需要循环
obj(1:4) = [];
您的代码说明:
在第一次迭代(i = 1
)中使用循环时,您拥有obj(1) = [];
,然后obj
拥有3
个元素,
obj = { 'Cloud' 'Sun' 'Lightning'}
在第二次迭代中obj(2)=[]
实际上是obj(3)
(sun
)。所以在第二个循环结束时:
obj = { 'Cloud' 'Lightning'}
在第三次迭代中,obj(3) = []
超出了obj
的维度,您就会收到错误。
如果你想使用循环,可以像这样使用它,
for i = ones(1,4)
obj(i) = [];
end