Я работаю с некоторыми антарктическими данными DEM в Matlab. Итак, мне удалось сгенерировать красивую сетку с помощью следующего базового кода:
load (Data.xyz)
X = Data(:,1);
Y = Data(:,2);
Z = Data(:,3);
xr = unique(X);
yr = unique(Y);
gz = zeros(length(yr),length(xr));
gz = griddata(X,Y,Z,xr,yr');
figure
mesh(xr,yr,gz);
hold on
contour3(xr,yr,gz,'k-');
hold off
Теперь у меня есть несколько вопросов, на которые я не смог ответить, несмотря на то, что занимался этим последние пару дней, просматривая все форумы и гугля день и ночь. Я надеюсь, что вы все эксперты могли бы предложить мне что-то. Мои вопросы:
Приведенный выше код занимает много времени. Согласитесь, что ЦМР для Антарктиды имеет большой размер и медленное время отклика кода не обязательно означает, что он неверен. Однако я совершенно не могу запустить этот код на своем ноутбуке (2,5 ГГц / 4 ГБ) - он такой медленный. Мне интересно, есть ли другие способы создания сетки, которые быстрее и эффективнее.
Вторая проблема заключается в том, что приведенный выше «Data.xyz» содержит данные ЦМР по всей Антарктиде. После создания сетки я хочу обрезать ее в зависимости от местоположения. Скажем, например, я хочу извлечь данные сетки для области, ограниченной x1, y1, x2, y2, x3, y3 и x4, y4. Как мне это сделать? Я нигде не смог найти подходящую функцию или инструмент или какой-либо пользовательский скрипт, который позволил бы мне это сделать. Можно ли вырезать сетку в матлабе?
Я использую Matlab 2012a, и у меня нет доступа к инструментарию сопоставления. Какие-либо предложения???