User Input Error? Using input in a function

1 Ansicht (letzte 30 Tage)
Olivia Colombo
Olivia Colombo am 27 Feb. 2019
Beantwortet: Stephan am 28 Feb. 2019
I am trying to use input to make a functiont that calculates the great circle distance between two sets of coordinates on the surface of the Earth. The problem is I am getting an error on the part that takes input (line 4), long before I get to the calculations. What am I doing wrong?
I've attached the code as well as example coordinates to check it.
  7 Kommentare
Walter Roberson
Walter Roberson am 28 Feb. 2019
exactly what input are you typing in in response to the prompt ?
Olivia Colombo
Olivia Colombo am 28 Feb. 2019
I've been testing it with: (with and without various degree symbols)
37N, 76W 37N 9W

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Stephan
Stephan am 28 Feb. 2019
Hi,
try:
result = mydistance
function d = mydistance
prompt = 'Input coordinates between which you want to find the great circle distance (XºN, XºW XºN, XºW): \n';
getridof = ["N","W",",",char(176)];
x = input(prompt,'s');
x = double(string(split(replace(x,getridof,""))));
a = acos(sin(deg2rad(x(1)))*sin(deg2rad(x(3)))+cos(deg2rad(x(1)))*cos(deg2rad(x(3)))*cos(abs(deg2rad(x(2)))-deg2rad(x(4))));
d = a*.6371;
disp(['The great circle distance in km is: ',num2str(d)])
end
for input:
Input coordinates between which you want to find the great circle distance (XºN, XºW XºN, XºW):
37°N, 76°W 37°N, 9°W
the result is:
The great circle distance in km is: 0.58165
result =
0.5817
Best regards
Stephan

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by