我很擅长。我在下面写了一个简单的函数,它得到一对并返回极坐标形式
function [r,a] = rect2polar(x,y)
r = sqrt(x^2 + y^2);
a = atan(y/x);
[r,a]
end
当我尝试例如rect2polar(3,5)时,它给了我下一个输出:
ans =
5.8310 1.0304
ans =
5.8310
它返回所需的输出,加上输出5.8310,换句话说,它第二次返回函数中的变量r。我怎样才能解决这个问题?写
rect2polar(3,5);
帮助(不同之处在于我写的;最后),但感觉不对。感谢任何帮助,谢谢!
答案 0 :(得分:4)
第一个显示的部分,
ans =
5.8310 1.0304
由函数中的这一行生成
[r,a]
由于缺少;
,Matlab会显示结果。
第二部分,
ans =
5.8310
生成是因为当您将函数调用为rect2polar(3,5)
时,表示您只需要一个输出,即第一个,在函数返回后显示。
所以,解决方案是:
[r, a]
,除了显示函数将输出的内容之外什么都不做; [out1, out2] = rect2polar(3,5)
。或者,如果您希望函数返回向量:
function out = rect2polar(x,y)
r = sqrt(x^2 + y^2);
a = atan(y/x);
out = [r,a];
end