第04章_MATLAB程序设计_例题源程序.doc

上传人:豆**** 文档编号:33461136 上传时间:2022-08-11 格式:DOC 页数:10 大小:46.50KB
返回 下载 相关 举报
第04章_MATLAB程序设计_例题源程序.doc_第1页
第1页 / 共10页
第04章_MATLAB程序设计_例题源程序.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《第04章_MATLAB程序设计_例题源程序.doc》由会员分享,可在线阅读,更多相关《第04章_MATLAB程序设计_例题源程序.doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除第4章 MATLAB程序设计例4.1 建立一个命令文件将变量a,b的值互换,然后运行该命令文件。 程序1:首先建立命令文件并以文件名exch.m存盘:clear;a=1:10;b=11,12,13,14;15,16,17,18;c=a;a=b;b=c;ab然后在MATLAB的命令窗口中输入exch,将会执行该命令文件。 程序2: 首先建立函数文件fexch.m:function a,b=exch(a,b)c=a;a=b;b=c;然后在MATLAB的命令窗口调用该函数文件:clear;x=1:10;y=11,12,13,14;15,16,17,18

2、;x,y=fexch(x,y)例4.2 求一元二次方程ax2+bx+c=0的根。a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2);例4.3 计算分段函数:x=input(请输入x的值:);if x=10 y=cos(x+1)+sqrt(x*x+1);else y=x*sqrt(x+sqrt(x);endy也可以用单分支if语句来实现:x=input(请输入x的值:);y=cos(x+1)+s

3、qrt(x*x+1);if x=10 y=x*sqrt(x+sqrt(x);endy或用以下程序:x=input(请输入x的值:);if x=10 y=cos(x+1)+sqrt(x*x+1);endif x=10 y=x*sqrt(x+sqrt(x);endy例4.4 输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。c=input(请输入一个字符,s);if c=A & c=a& c=0& c=9 disp(abs(c)-abs(0);else disp(c);end例4.5 某商场对顾客所购买

4、的商品实行打折销售,标准如下(商品价格用price来表示): price200 没有折扣 200price500 3%折扣 500price1000 5%折扣 1000price2500 8%折扣 2500price0) sum mean=sum/nend例4.12 根据矩阵指数的幂级数展开式求矩阵指数。X=input(Enter X:);E=zeros(size(X);F=eye(size(X);n=1;while norm(F,1)0 E=E+F; F=F*X/n; n=n+1;endEexpm(X) %调用MATLAB矩阵指数函数求矩阵指数例4.13 求100,200之间第一个能被21整

5、除的整数。for n=100:200if rem(n,21)=0 continueendbreakendn例4.14 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求1,500之间的全部完数。例4.15 用筛选法求某自然数范围内的全部素数。 m=input(m=); p=1:m; p(1)=0;for i=2:sqrt(m) for j=2*i:i:m p(j)=0; endendn=find(p=0);p(n)关于在p中划去i的倍数(不包括i),可利用矩阵运算一步完成,从而得到更为简洁的程序:m=input(m=);p=2:m;for i=2:sqrt(m)

6、 n=find(rem(p,i)=0&p=i); p(n)=;endp例4.16 编写函数文件求半径为r的圆的面积和周长。 函数文件如下:function s,p=fcircle(r)%CIRCLE calculate the area and perimeter of a circle of radii r%r 圆半径%s 圆面积%p 圆周长%2006年2月30日编s=pi*r*r;p=2*pi*r; 将以上函数文件以文件名fcircle.m存盘,然后在MATLAB命令窗口调用该函数:s,p=fcircle(10)例4.17 利用函数文件,实现直角坐标(x,y)与极坐标(,)之间的转换。 函

7、数文件tran.m:function rho,theta=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x); 调用tran.m的命令文件main1.m:x=input(Please input x=:);y=input(Please input y=:);rho,the=tran(x,y);rhothe例4.18 利用函数的递归调用,求n!。function f=factor(n)if n1 error(RNDPRM1 accepts as inputs only vectors);endY=; %从一个空矩阵开始l=n; %X的元素个数for i=1:nk

8、=1+fix(l*rand); %随机选择Y的下一个元素的位置x=X(k); %被选择的元素 Y=Y,x; %将X添加到Y中 X(k)=; %从X中删除x元素 l=l-1; %更新X的元素个数end第二个程序用函数的递归调用:function Y=rndprm2(X)%RNDPRM2 用递归调用产生一个行向量的任意排列%RNDPRM2(X)产生一个X的任意排列m,n=size(X);l=n;if m1 error(RNDPRM2 accepts as inputs only vectors)endif n=1 Y=X;elsek=1+fix(l*rand); %随机选择Y的下一个元素的位置x=

9、X(k); %被选择的元素X(k)=; %从X中删除x元素 Z=rndprm2(X); %将剩下的元素随机排列 Y=Z,x; %构造输出向量 l=l-1;end例4.20 nargin用法示例。 函数文件examp.m:function fout=charray(a,b,c)if nargin=1 fout=a;elseif nargin=2 fout=a+b;elseif nargin=3 fout=(a*b*c)/2;end 命令文件mydemo.m:x=1:3;y=1;2;3;examp(x)examp(x,y)examp(x,y,3)例4.21 全局变量应用示例。 先建立函数文件wadd.m,该函数将输入的参数加权相加。function f=wadd(x,y)global ALPHA BETAf=ALPHA*x+BETA*y; 在命令窗口中输入:global ALPHA BETAALPHA=1;BETA=2;s=wadd(1,2)【精品文档】第 10 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com