MATLAB - 函数返回不需要的输出

时间:2017-05-08 22:32:58

标签: matlab function

我很擅长。我在下面写了一个简单的函数,它得到一对并返回极坐标形式

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);

帮助(不同之处在于我写的;最后),但感觉不对。感谢任何帮助,谢谢!

1 个答案:

答案 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