matlab中m函数文件怎么输出两个参数
就是说输出的答案为两个,如:function[hehe,haha]=sss(x)n=length(x);haha=sum(x)/n;hehe=sqrt(sum((x-ha...
就是说输出的答案为两个,如:
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版本 展开
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版本 展开
3个回答
展开全部
对于返回一个参数的函数fun(...)
直接在命令行输入
fun(...)
那么其返回参数就会自动存放到变量ans里面
对于有两个返回参数以上的函数
直接在命令行输入
fun(...)
那么其第一个返回参数会自动存放到变量ans里面,而后面其他的返回参数就会被忽略
如果想得到多返回参数函数的所有返回参数,必须将返回参数赋值给足够的变量储存起来
就像你的函数sss(x),
你必须在命令行输入
[a b]=sss(x)
那么sss的第一个返回参数赋值给a,第二个返回参数赋值给b
当然a,b变量名你是可以随意改的,但是必须要两个不同的变量来储存这两个返回参数
像你所说的情况,如果只返回一个值的话,应该返回第一个hehe才对
直接在命令行输入
fun(...)
那么其返回参数就会自动存放到变量ans里面
对于有两个返回参数以上的函数
直接在命令行输入
fun(...)
那么其第一个返回参数会自动存放到变量ans里面,而后面其他的返回参数就会被忽略
如果想得到多返回参数函数的所有返回参数,必须将返回参数赋值给足够的变量储存起来
就像你的函数sss(x),
你必须在命令行输入
[a b]=sss(x)
那么sss的第一个返回参数赋值给a,第二个返回参数赋值给b
当然a,b变量名你是可以随意改的,但是必须要两个不同的变量来储存这两个返回参数
像你所说的情况,如果只返回一个值的话,应该返回第一个hehe才对
追问
那请问有没有什么办法能够让ans同时输出两个参数呢?
追答
matlab的设定如此,没有办法
推荐于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);
这些属性使得函数成为强有力的工具,用以计算命令。这些命令包括在求解一些大的问题时,经常出现的有用的数学函数或命令序列。由于这个强大的功能,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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看程序是没有问题的,应该是对的
更多追问追答
追问
上面的那段程序就是全部的了
追答
另外写一个.m文本或者在命令行里面 写上 [hehe haha]=sss(x)
就变成两个输出了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询