Имам данни за географска дължина и ширина и ги преобразувах в UTM с помощта на стандартите WGS 84. Когато ги сравня с UTM стойностите, генерирани от моята широта и дължина, те не съвпадат. Стойностите по подразбиране за преобразуването ми са от

<http://www.cellspark.com/UTM.html>

Например:

test=defaultm('utm');
utmzone=35;
origin=(utmzone-31).*6+3;
test.origin=[0 origin 0];
test=defaultm(test);
[eastutm2,northutm2]=mfwdtran(test,44.3536,28.4981);
%default values taken from manual lat -> UTM conversion
diffnorth2=4912239-northutm2
diffeast2=619393.56-eastutm2

ЗАБЕЛЕЖКА:-

Matlabsolutions.com предоставя най-новата MatLab Homework Help, MatLab Assignment Help за студенти, инженери и изследователи в множество клонове като ECE, EEE, CSE, Mechanical, Civil със 100% изход. Код на Matlab за B.E, B.Tech ,M.E,M.Tech, Ph.D. Учени със 100% гарантирана поверителност. Вземете MATLAB проекти с изходен код за вашето обучение и изследвания.

Тази разлика възниква, защото референтният елипсоид на MATLAB по подразбиране е „Международен“, а не „WGS 84“

Въпреки че хората често използват UTM с WGS 84, UTM първоначално е определен за работа с различните елипсоиди в различни части на света и кутията с инструменти спазва тази спецификация.

Следният код е с точност до няколко сантиметра.

mUtm=defaultm('utm');
mUtm.zone = '35T';
mUtm.geoid = almanac('earth','wgs84','meters');
mUtm=defaultm(mUtm);
[eastutm2,northutm2]=mfwdtran(mUtm,44.3536,28.4981);
%default values taken from manual lat -> UTM conversion
diffnorth2=4912239-northutm2
diffeast2=619393.56-eastutm2
% Perform inverse mapping to verify lat and lon
[lat, lon] = minvtran(mUtm, eastutm2,northutm2)

Обърнете внимание, че започвайки от MATLAB 7.14 (R2012a), се препоръчва да използвате функцията wgs84Ellipsoid вместо almanac. За да направите това, заменете реда, съдържащ функцията на алманаха, със следното:

ВИЖТЕ ПЪЛНИЯ ОТГОВОР, КЛИКНЕТЕ ВЪРХУ ВРЪЗКА