Arrays 在MATLAB中,哪种语法更适合删除数组的元素?

Arrays 在MATLAB中,哪种语法更适合删除数组的元素?,arrays,matlab,Arrays,Matlab,在MATLAB中,假设我有一个数组,并创建了一个逻辑向量,其中包含我要删除的元素的true项,例如称之为delu index。要实现这一点,以下方法之一是否更好/更快和/或更可取 arr(del_index) = []; 或 两者看起来都不错,所以让我们测试一下速度 time1=0; th=0.5 for ii=1:100000 arr=rand(10000,1); del_index=arr<th; tic arr(del_index) = []; ti

在MATLAB中,假设我有一个数组,并创建了一个逻辑向量,其中包含我要删除的元素的
true
项,例如称之为
delu index
。要实现这一点,以下方法之一是否更好/更快和/或更可取

arr(del_index) = [];


两者看起来都不错,所以让我们测试一下速度

time1=0;
th=0.5
for ii=1:100000

   arr=rand(10000,1);
   del_index=arr<th;
   tic
   arr(del_index) = [];
   time1=time1+toc;
end


time2=0;
for ii=1:100000

   arr=rand(10000,1);
   del_index=arr<th;
   tic
   arr = arr(~del_index);
   time2=time2+toc;
end

display(['arr(del_index) is ', num2str(time1/time2), ' times slower'])
time1=0;
th=0.5
对于ii=1:100000
arr=兰特(10000,1);
del_索引=相关:
time1=0;
th=0.5
for ii=1:100000

   arr=rand(10000,1);
   del_index=arr<th;
   tic
   arr(del_index) = [];
   time1=time1+toc;
end


time2=0;
for ii=1:100000

   arr=rand(10000,1);
   del_index=arr<th;
   tic
   arr = arr(~del_index);
   time2=time2+toc;
end

display(['arr(del_index) is ', num2str(time1/time2), ' times slower'])