Я новый пользователь MATLAB и я пытаюсь построить функцию:Как построить свою функцию к сетке
function [ uncertainty ] = uncertain(s1, s2, p)
%UNCERTAIN calculates the measurement uncertainty of a triangulation
% provide two coordinates of known stations and a target coordinate
% of another point, then you get the uncertainty
[theta1, dist1] = cart2pol(p(1)-s1(1), p(2)-s1(2));
[theta2, dist2] = cart2pol(p(1)-s1(1), p(2)-s2(2));
theta=abs(pi-theta2-theta1);
uncertainty = dist1*dist2/abs(sin(theta));
end
вызывается:
uncertain([0 0],[8 0],[4 4])
я получаю один результат. Но я хочу всю поверхность и называется:
x=-2:.1:10;
y=-2:.1:10;
z = uncertain([0 0],[8 0],[x y]);
mesh(x,y,z)
Я получаю ошибку: «Z должен быть матрицей, а не скаляр или вектор.»
Как я могу изменить свой код, чтобы моя функция рисовала поверхность?
Заранее спасибо. Ralf.
Спасибо за ваш ответ. Я стараюсь понять ваши изменения. Но результат довольно неожиданный, так как углов должны быть около 90 ° и, следовательно, грех (угла) должно быть около 1. У меня есть уродливый Java код получения изображения, как это: HTTP: // pastehtml .com/view/bjowk6rbg.html –
Но мой код matlab еще не имеет предела 100, как: неопределенность = max (неопределенный, 100) координата wise И границы должны быть сужены. –
Я нашел еще одну ошибку в моем коде: три угла должны быть на 180 °, потому что они должны быть тремя внутренними углами треугольника (s1, s2, p). –