作业帮 > 综合 > 作业

基础matlab输出变量问题

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/04/28 21:50:03
基础matlab输出变量问题
function [mean1,stdev]=stat2(x) %函数定义行
% 求阵列x 的平均值和标准差 %H1 行
% 调用格式为
% [mean,stdev]=stat2(x) | 函数帮助文本
[m,n]=size(x); %以下为函数体,其中可包含注释
if m==1
m=n;
end
s1=sum(x);
s2=sum(x.^2);
mean1=s1/m;
stdev=sqrt(s2/m-mean1.^2);
该函数为啥子只能够输出平均值,不能输出方差呢?
基础matlab输出变量问题
可以啊!
Step1:
建立一个名字为teststat.m的文档.里面设置一个矩阵,并且调用求stat2函数,具体代码如下:
x = [1 2 4 1; 9 8 6 7; 3 5 1 4];
[x,y] = stat2(x);
x
y
Step2:
将stat2函数对应的代码保存到名字为stat2.m的文件中(这里必须保存为和函数同名的文件,否则出错)
function [mean1,stdev]=stat2(x) %函数定义行
% 求阵列x 的平均值和标准差 %H1 行
% 调用格式为
% [mean,stdev]=stat2(x) | 函数帮助文本
[m,n]=size(x); %以下为函数体,其中可包含注释
if m==1
m=n;
end
s1=sum(x);
s2=sum(x.^2);
mean1=s1/m;
stdev=sqrt(s2/m-mean1.^2);
Step3:
然后运行teststat.m,得到的结果如下:
x =
4.3333 5.0000 3.6667 4.0000
y =
3.3993 2.4495 2.0548 2.4495
再问: 在没有做您描述的修改之前 那为什么直接在命令窗口中输入stat2([3,3,3,3,3]) 敲回车 显示运算结果的只有[3,3,3,3,3]的均值呢?
再答: 这个和matlab的显示机制有关系,matlab的命令窗口中,只要敲入一行命令,如果没有给变量赋值的话,那么matlab会自动给其指定一个ans变量,显示其中一个值。 你可以这样试一下:在命令窗口里输入:[x ,y ] = stat2([3,3,3,3,3]) 试一下。你会发现,结果是 x = 3 y = 0