Это код Matlab:vectorising для цикла в Matlab с, если проверяет внутри цикла
new=[];
for i=1:size(p,1)
if (alpha*p(i,1)+beta*p(i,2)+gamma*p(i,3)-sigma)>0
new=[new;p(i,:)];
end
end
Здесь p
большой массив размером как 300000x3. Массив new
получается путем удаления некоторых 3-х кортежей из массива p
. Для этого выполняется проверка if
. Но это занимает много времени.
Я хочу оформить код, например, получить двоичный массив с 1 для оставшихся точек и 0 для удаленных точек. Затем, используя эти флаги, мы можем быстрее построить массив new
. Я прав? Может ли кто-нибудь дать код для векторизации или ускорения вышеуказанного кода?
_ «Может кто-то код для vectorising или ускоряя выше код?» _. Извините, что это не так, как это работает на SO. В следующий раз, когда вы напишете вопрос, попробуйте сначала вставить его в свои слова и приложите свои усилия. Существует также хороший шанс, что вам удалось бы сделать это самостоятельно и узнать что-то как положительный побочный эффект. – patrik