matlab中m函数文件怎么输出两个参数

就是说输出的答案为两个,如:
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版本

对于返回一个参数的函数fun(...)
直接在命令行输入
fun(...)
那么其返回参数就会自动存放到变量ans里面

对于有两个返回参数以上的函数
直接在命令行输入
fun(...)
那么其第一个返回参数会自动存放到变量ans里面,而后面其他的返回参数就会被忽略

如果想得到多返回参数函数的所有返回参数,必须将返回参数赋值给足够的变量储存起来
就像你的函数sss(x),
你必须在命令行输入
[a b]=sss(x)
那么sss的第一个返回参数赋值给a,第二个返回参数赋值给b
当然a,b变量名你是可以随意改的,但是必须要两个不同的变量来储存这两个返回参数

像你所说的情况,如果只返回一个值的话,应该返回第一个hehe才对追问

那请问有没有什么办法能够让ans同时输出两个参数呢?

追答

matlab的设定如此,没有办法

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-13
使用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);
第2个回答  2014-12-20
看程序是没有问题的,应该是对的追问

上面的那段程序就是全部的了

追答

另外写一个.m文本或者在命令行里面 写上 [hehe haha]=sss(x)

就变成两个输出了

追问

修改了,但还是不行

追答

不是 lianxi([1 2 3]) 改成[hehe haha]= lianxi([1 2 3])

matlab中m函数文件怎么输出两个参数
你必须在命令行输入 [a b]=sss(x)那么sss的第一个返回参数赋值给a,第二个返回参数赋值给b 当然a,b变量名你是可以随意改的,但是必须要两个不同的变量来储存这两个返回参数 像你所说的情况,如果只返回一个值的话,应该返回第一个hehe才对 ...

如何在matlab中定义两个输出量的函数呢?
[输出变量列表,逗号分隔]=fsolve(函数句柄,[参数初值列表,逗号分隔],选项参数)对照你写的语句:[x,favl]=fsolve(@(x)cos(0.5*x)*cosh(0.5*x)+1,6)你写的表达式中fsolve参数中的@句是匿名方式声明函数:函数名 =@(变量列表)表达式 所以原句相当于在求解x0=6附近cos(0.5*x)*cosh(0....

MATLAB如何把计算出来的多项式输出?
比如我们输出一个函数f=A*sin(x)-B*exp(C*x)这种表达式,A,B,C是你输入的任何参数.(1)你写上如下代码的M文件 function f=dispf(A,B,C)syms x;f=A*sin(x)-B*exp(C*x);end (2)现在你直接在命令窗口输入命令dispf就可以了,比如 >> dispf(12,36,78)ans = 12*sin(x) - 36*e...

matlab自变量多个值,经公式运算,输出多个结果,如何编程
1、首先,建立一个自定义函数文件。如ex_fun.m,其文件内容 function [C,R]=ex_fun(X,Y,A)syms C R eq1=((C\/((1\/2)+X+(1\/(0.013*R)))*(1-Y))-R;eq2=((A*(11*(C-40)))\/(8*(C+80)))-R;s=solve(eq1,eq2);C=vpa(s.C,5);R=vpa(s.R,5);end 2、再命令窗...

...Matlab function模块能实现多输出吗,比如我的函数有四个输出 啊,a...
MATLAB Function里面只能填写一个函数名称,无法编写m文件。如果你需要编写m文件的话,可以使用Embedded MATLAB Function ,我想你说的是这个。如果要输出多个数据,可以这样写:function y = fcn(u)y=[y1 y2 y3];这样就可以当成一个向量输出了。外面只有一个输出端口,里面的数据是向量形式。如果这样写...

matlab中如果运行完m文件希望输出以下内容(引号中间的) “区间为...
a=['区间为[' num2str(minv) num2str(max) ']'];disp(a);其中 minv是最小值 maxv是最大值 其实就是用 num2str函数将数值转为字符串 然后,将需要显示的字符串都连起来合成一个新的字符串 最后一起显示出来就可以了

matlab怎么写函数文件~
首先打开电脑上的“matlab”软件,主界面如下图所示,可以看到命令行窗口,点击箭头处的“新建”,创建一个函数文件。2、接着点击箭头处的“脚本”按钮,新建一个matlab脚本文件,文件的后缀为.m,也就是m文件。3、下面来看一下自定义函数的格式,output处填写函数的输出值,input为函数的参数,输入值...

matlab怎么在一个m文件中写多个函数?
首先建立M文件或直接点击(File\/New\/Function)建立函数文件,其中函数文件的格式是:function [输出变量] = 函数名称(输入变量)注释 函数体 end 编写代码如下并保存文件,注意文件命名时不能以数字开头:function [s] = eg_sum( n )calculate the sum of 1..n s = 0;for i = 1:n s = s...

matlab中如何使用m文件中的数据
1、m文件如果是函数function开头,比如function out=fun(in) 直接在workspace中调用out=fun(in)。2、若m文件是脚本,文件名为funfun 直接在workspace中输入funfun就行了。3、打开.mat文件方式,用file-->importdata 或者用命令行importdata *.mat,后面后缀名不能不写,否则报错。

...在simulink的matlab fcn模块中怎么设置两个输出???
MATLAB Fcn模块不支持多个输出,要想实现多输出,可以采用以下做法之一(由易到难):MATLAB Fcn的输出为向量,后面连接Demux模块把向量给分拆成多个输出;使用Embedded MATLAB Function模块;使用Level-2 M file S-Function模块。具体用法可查相关模块的帮助,如有问题欢迎追问。

相似回答