猿问

为什么会出现下面的状况???

就是说输出的答案为两个,如:
function [hehe,haha]=sss(x)
n=length(x);
haha=sum(x)/n;
hehe=sqrt(sum((x-haha).^2)/n);
最后输出的只有haha的值,没有hehe的值
(haha、hehe、n为变量)我用的是matlab2014a版本


PIPIONE
浏览 165回答 2
2回答

侃侃无极

对于返回一个参数的函数fun(...)直接在命令行输入fun(...)那么其返回参数就会自动存放到变量ans里面对于有两个返回参数以上的函数直接在命令行输入fun(...)那么其第一个返回参数会自动存放到变量ans里面,而后面其他的返回参数就会被忽略如果想得到多返回参数函数的所有返回参数,必须将返回参数赋值给足够的变量储存起来就像你的函数sss(x),你必须在命令行输入[a b]=sss(x)那么sss的第一个返回参数赋值给a,第二个返回参数赋值给b当然a,b变量名你是可以随意改的,但是必须要两个不同的变量来储存这两个返回参数像你所说的情况,如果只返回一个值的话,应该返回第一个hehe才对

忽然笑

使用MATLAB函数时,例如inv, abs, angle和sqrt,MATLAB获取传递给它的变量,利用所给的输入,计算所要求的结果。然后,把这些结果返回。由函数执行的命令,以及由这些命令所创建的中间变量,都是隐含的。所有可见的东西是输入和输出,也就是说函数是一个黑箱。这些属性使得函数成为强有力的工具,用以计算命令。这些命令包括在求解一些大的问题时,经常出现的有用的数学函数或命令序列。由于这个强大的功能,MATLAB提供了一个创建用户函数的结构,并以M文件的文本形式存储在计算机上。MATLAB函数fliplr是一个M文件函数良好的例子。function y = fliplr(x)% FLIPLR Flip matrix in the left/right direction.% FLIPLR(X) returns X with row preserved and columns flipped% in the left/right direction.%  % X = 1 2 3 becomes 3 2 1% 4 5 6 6 5 4%% See also FLIPUD, ROT90.% Copyright (c) 1984-94 by The MathWorks, Inc.[m, n] = size(x);y = x(: , n : -1 : 1); 
随时随地看视频慕课网APP
我要回答