- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 Matlab程序设计基础;命令文件;;【例9-2】 绘制衰减的正弦阶梯图。
在程序编辑窗口中编写以下语句,并以example92.m为名存入相应的子目录。
t=0:40;
y=sin(0.5*t).*exp(-.08*t);
stairs(t,y)
在命令窗口提示符后键入如下命令,并回车:
example92
运行结果结果如图9-2所示:;【例9-3】 已知x=[0.1 0.14 0.2 0.23 0.34 0.45 0.55 0.6 0.67 0.7 0.8 1],y=[2.2 2.5 3.4 4.4 5.6 6.5
7.0 7.5 8 9 10 11],编写一命令文件实现曲线拟合。
在程序编辑窗口中编写以下语句,并以example93.m为名存入相应的子目录。
x=[0.1 0.14 0.2 0.23 0.34 0.45 0.55 0.6 0.67 0.7 0.8 1];
y=[2.2 2.5 3.4 4.4 5.6 6.5 7.0 7.5 8 9 10 11];
curvefit=polyfit(x,y,6);
yfit=polyval(curvefit,x);
plot(x,y,ox,yfit,m:)
;在命令窗口提示符后键入如下命令,
example93
运行结果如图9-3所示:
;三、函数文件
; 将文件存盘,默认状态下函数名为average.m(文件名与函数名相同),函数average接收一个输入参数并返回一个输出参数,该函数的用法与其它Matlab函数一样;在Matlab命令窗口中运行上面的求均值函数,便可求得1~199的平均值。
z=1:199
y=average(z)
y =
100;% 任意给出向量x、y及拟合阶数,要求x
% 和y的元素个数相同
function curvefit=fitdone(x,y,fitorder)
% 利用拟合函数polyfit开始拟合
curvefit=polyfit(x,y,fitorder);
% 求所得多项式在x处的值
yfit=polyval(curvefit,x);
% 画原始数据和拟合多项式曲线
figure
plot(x,y,o,x,yfit,m:)
end
;在命令窗口给出向量x、y和阶数fitorder,如下所示:
x=[0.1 0.14 0.2 0.23 0.34 0.45 0.55 0.6 0.67 0.7 0.8 1];
y=[2.2 2.5 3.4 4.4 5.6 6.5 7.0 7.5 8 9 10 11];
fitorder=4;
然后调用函数fitdone,即
fitdone(x,y,fitorder),回车后,运行结果如图9-4所示:; 【例9-5】编写一个对序列做傅立叶变换(FT)和离散傅立
叶变换(DFT)的函数文件。
在程序编辑窗口中编写以下语句,并以ftanddft.m为名
存入相应的子目录。
% 对任意一个序列做傅立叶变换(FT)和离散傅立叶变换(DFT)
function [X,Xk]=ftanddft(x,N)
w=2*pi*(0:127)/128;
X=x*exp(-j*[1:length(x)]*w); % x 的傅立叶变换FT
;subplot(211)
plot(w,abs(X))
k=0:N-1;
XK=x*exp(-j*[1:length(x)]*(2*pi*k)/N); % x的离散傅立叶变换DFT
subplot(212)
stem(k,abs(XK))
end;;第二节 M文件程序流程控制;(2)有时在分支结构中,用户希望在表达式为true和false两种条件下执行不同的操作,这时可以使用如下格式的If结构:
if 表达式
Matlab语句A
else
Matlab语句B
end
这种选择结构表示,当表达式的计算结果为逻辑真的时候,执行Matlab语句体A,否则执行Matlab语句B,在语
句B的结尾必须具有关键词end。
;(3)当用户需要根据多个条件执行多个不同的操作时,可以采用下面的If结构:
if 表达式1
Matlab语句体1
elseif 表达式2
Matlab语句体2
.
.
.
elseif 表达式n
Matlab语句体n
else
Matlab语句体n+1
end; 在上面的结构中,首先计算表达式1,如果条件
满
文档评论(0)