Arrays 在matlab中删除单元数组元素时出错
我有以下一维单元阵列:Arrays 在matlab中删除单元数组元素时出错,arrays,matlab,cell,element,Arrays,Matlab,Cell,Element,我有以下一维单元阵列: obj = {'HotAirBalloon' 'Cloud' 'Sun' 'Lightning'}; 我尝试使用for循环以以下方式删除其元素: for i = 1:4 obj (i) = [ ]; end 但是,我得到了一个错误: 要删除的元素索引超过了矩阵维度,以下元素仍保留在“obj”数组中:“云”“闪电” 如果我重复这个操作(for循环),那么元素就会被删除 有什么问题吗?不需要循环 obj(1:4) = []; 代码说明: 当您在第一次迭代(i=1)中
obj = {'HotAirBalloon' 'Cloud' 'Sun' 'Lightning'};
我尝试使用for
循环以以下方式删除其元素:
for i = 1:4
obj (i) = [ ];
end
但是,我得到了一个错误:
要删除的元素索引超过了矩阵维度,以下元素仍保留在“obj”数组中:“云”“闪电”
如果我重复这个操作(for循环),那么元素就会被删除
有什么问题吗?不需要循环
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
或者,对于i=1:4,obj(1)=[];结束
:-)但说真的,你是对的,obj(1:4)=[]代码>是最好的。我发现了另一种方法(),如下所示:对于I=4:-1:1obj(I)=[];结束