С географической сеткой 20х30 размера, у меня есть два (температура) переменные:Нанести 2D порог 3D массива
В данных A
с размером 20x30x100
и threshold
размером 20х30
Я d хотел бы применить порог к данным, то есть вырезать значения в A
, которые превышают threshold
, причем каждая точка сетки имеет свой собственный порог. Так как это даст различное количество значений для каждой точки сетки, я подумал, что остальное будет оставлено нулями, так что результирующая переменная, назовем ее B
, также будет иметь размер 20x30x100.
Я думал сделать что-то вроде этого, но есть что-то не так с петлей:
B = sort(A,3); %// sort third dimension in ascending order
threshold_3d = repmat(threshold,1,1,100); %// make threshold into same size as B
for i=1:20
for j=1:30
if B(i,j,:) > threshold_3d(i,j,:); %// if B is above threshold
B(i,j,:); %// keep values
else
B(i,j,:) = 0; %// otherwise set to zero
end
end
end
Что такое правильный способ сделать петлю?
Какие еще варианты для этого есть?
Спасибо за помощь!