Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在matlab中删除单元数组元素时出错_Arrays_Matlab_Cell_Element - Fatal编程技术网

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)=[];结束