我有一个将度数转换为弧度的小函数。我想在一个脚本中使用此函数,该脚本将球形地理坐标转换为精确的笛卡尔坐标。每当我将坐标传递给函数时,我都会收到 function [] = winkelradiant( w )
dez = w(1) + w(2)/60 + w(3)/3600;
rad = dez * (pi/180);
rad
end
错误,是否有人可以查看它并可能告诉我我在哪里弄乱?
功能从这里开始:
function GB
w1 = [8, 47, 15.2356];
w2 = [45, 12, 46.1887];
winkelradiant(w1)
winkelradiant(w2)
%Transform geographical to cartesian coordinates
r = 6371000.785;
a =[45, 12, 46.1887];
b =[8, 47, 15.2356];
phi = winkelradiant(a);
lambda = winkelradiant(b);
x = r*cos(phi)*cos(lambda);
y = r*cos(phi)*sin(lambda);
z = r*sin(phi);
KO = [x y z]
脚本从这里开始:
setTimeout
答案 0 :(得分:4)
你的函数定义没有返回参数。
答案 1 :(得分:4)
function rad = winkelradiant( w )
dez = w(1) + w(2)/60 + w(3)/3600;
rad = dez * (pi/180);
end
在matlab中,必须在第一行函数中定义return veriable(s)。如果只有一个变量要返回,那么请在上面的示例中进行。但是,如果有多个返回变量,则可以使用以下方法完成:
function [vout1 vout2] = functionxyz( vin )
vout1 = vin *2 ;
vout2 = vin + 2 ;
end