已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章例题命令文件(Script File)和函数文件(Function File) 例2-1建立一个M文件,其功能是:用两个实变量R、M生成复变量RM,然后运行该M文件。程序1:建立一个命令文件。clear;R=1,2,3;4,5,6;M=11,12,13;14,15,16;RM=R+i*M以文件名setcomp保存命令文件,然后在MATLAB的命令窗口中输入setcomp,将会执行该命令文件,输出为:程序2:建立一个函数文件。function RM=fsetcomp(R,M)RM=R+i*M; 以文件名fsetcomp保存命令文件,然后在MATLAB的命令窗口中输入fsetcomp,将会输出出错信息。在命令窗口输入:a=1,2,3;4,5,6;b=11,12,13;14,15,16;c=fsetcomp(a,b)顺序结构 例2-2求一元二次方程ax2+bx+c=0的根。由于MATLAB能进行复数运算,所以不需要判断方程的判别式,而直接根据求根公式求根。程序如下:a=2;b=6;c=3;% 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);用网孔分析法或节点电压法分析1、用网孔分析法求下图中电流I1,I2,I3解:建模:(1)标出网孔电流方向及符号(如下图)(2)列网孔方程(3)写成矩阵形式(4)待求量与网孔电流的关系I1=Ia; I2=Ib; I3=IaIb;编程:clear,close all,format compactR1=6;R2=3;R3=6;Us1=24;Us2=30;%输入已知参数r11=R1+R3;r12=-R3;%为已知矩阵元素赋值r21=-R3;r22=R2+R3;R=r11 r12;r21 r22;Us=Us1;Us2;%列出已知矩阵I=RUs;%算出未知矩阵Ia=I(1),Ib=I(2),%从矩阵元素中求出网孔电流pause(5) %暂停5秒I1=Ia;I2=-Ib;I3=Ia-Ib;%写出待求量与网孔电流的关系disp(I1=,num2str(I1),I2=,num2str(I2) ,I3=,num2str(I3);选择结构 例2-3 %判断是否为偶数,单分支x=input(输入x=);%当x为矩阵时,逻辑判断里面的每一个元素if rem(x,2)=0 disp(x is even);end%判断是否全为偶数 ,双分支x=input(输入x=);if rem(x,2)=0 disp(x is all even);else disp(x is not all even);end%计算分段函数 :程序如下:x=input(请输入x的值:);if x=A & c=a& c=0& c=9 disp(str2num(c)2);else disp(c);endswitch语句 例2-5: 将上例改用switch语句实现。c=input(请输入一个字符:,s);cc=abs(c);switch(cc) case num2cell(abs(A):abs(Z) disp(lower(c); case num2cell(abs(a):abs(z) disp(upper(c); case num2cell(abs(0):abs(9) disp(abs(c)-abs(0)2); otherwise disp(c);end%num2cell函数是将数值矩阵转化为单元矩阵,num2cell(1:5)等价于1,2,3,4,5。% 编写一个函数,将百分制的学生成绩转换为五级制的成绩function f=trangrade(x)switch fix(x/10) %向0舍入为整数case10 ,9f=A;case 8f=B;case 7f=C;case 6f=D;otherwisef=E;endtry语句 例2-6 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。A=input(请输入A矩阵:);B=input(请输入B矩阵:);lasterr(); %清除原有的错误信息try C=A*B;catch C=A.*B;endCdisp(lasterr) %显示出错原因分别计算1 2 3;4 5 6,7 8 9;10 11 12和1 2 3;4 5 6,1 2;3 4;5 6时的值%计算各元素的和,如果有输入元素出错则输出和为0并显示出错的原因x=input(请输入); try sum=sum(x) catch sum=0,endlasterr %显示出错的原因分别输入1 2 3 b 9和1 2 3 7 9for语句 例2-7 %一个3位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。shu=; %用于存放结果,先赋空值for m=100:999m1=fix(m/100); %求m的百位数字m2=rem(fix(m/10),10); %求m的十位数字m3=rem(m,10); %求m的个位数字if m=m1*m1*m1+m2*m2*m2+m3*m3*m3shu=shu,m; %存入结果endendshu%用for语句为数组x赋值x(1)=10;for i=2:6 x(i)=2*x(i-1);endplot(x)x%An M-file script to produce flower petal plotstheta=-pi:0.01:pi;rho(1,:)=2*sin(5*theta).2;rho(2,:)=cos(10*theta).3;rho(3,:)=sin(theta).2;rho(4,:)=5*cos(3.5*theta).3;for i=1:4polar(theta,rho(i,:)%极坐标画图pauseend %已知 ,求y的值y=0;n=100;for i=1:ny=y+(-1)(i-1)/i;enddisp(y)%写出下列程序的执行结果。s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=a s=s+k;enddisp(s);while语句 例2-8 求使 最小的n。程序如下:y=0;n=0;while (y=1.5)n=n+1;y=y+1/n/n;enddisp(满足条件的n是:,num2str(n)%输入两个整数,求它们的最小公倍数。程序如下:x=input(请输入第一个数:);y=input(请输入第二个数:);z=max(x,y);while or(rem(z,x)=0,rem(z,y)=0) z=z+1;enddisp(num2str(x),和,num2str(y),的最小公倍数是:,num2str(z)%搜寻最小的阶乘为100位数字的整数n值。n=1;while prod(1:n)0n=n+1;if prod(1:n)=1e99 %prod(1:n)是把1到n之间的元素相乘 breakendendn%设计一个计算平均成绩及不及格率的程序,若输入成绩为负值,则显示出错信息clear,close allsum=0; %给总分初始值fail=0; %给不及格人数初始值x=input(输入成绩);for i=1:length(x) if x(i)0 disp(Error:variable must be positive); break; elseif x(i)0 average=sum/length(x)failrate=fail/length(x)endcontinue语句 例2-10%设计一个计算及格率及不及格率的程序,x=input(请输入成绩)i=0;m=0;n=0;%n不及格人数,m及格人数,给初始值while i=60 m=m+1; continue end n=n+1;endpass=m/ifail=n/i【例2.12】设x,y,z均为正整数,求下列不定方程组 共有多少组解。这类方程的个数少于未知数的个数的方程称为不定方程,一般没有唯一解,而有多组解。对于这类问题,可采用穷举法,即将所有可能的取值一个一个地去试,看是否满足方程,如满足即是方程的解。首先确定3个变量的可取值,x、y、z均为正整数,所以3个数的最小值是1,而其和为20,所以3者的最大值是18。n=0;a=;for x=1:18 for y = 1:18 z = 20 - x - y; if 25* x + 20 * y + 16 * z = 400 a=a;x,y,z; n = n + 1; end endenddisp(方程组共有,num2str(n),组解);disp(a)函数文件的基本结构 例2-11:function y = mean(x,dim)%MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X. For% matrices, MEAN(X) is a row vector containing the mean value of% each column. For N-D arrays, MEAN(X) is the mean value of the% elements along the first non-singleton dimension of X.% MEAN(X,DIM) takes the mean along the dimension DIM of X. % Example: If X = 0 1 2% 3 4 5% then mean(X,1) is 1.5 2.5 3.5 and mean(X,2) is 1% 4% See also MEDIAN, STD, MIN, MAX, COV.% Copyright 1984-2002 The MathWorks, Inc. % $Revision: 5.17 $ $Date: 2002/06/05 17:06:39 $if nargin=1, % Determine which dimension SUM will use dim = min(find(size(x)=1); if isempty(dim), dim = 1; end y = sum(x)/size(x,dim);else y = sum(x,dim)/size(x,dim);end函数定义行 定义了的函数的名称,以及输入输出参数的数量和名称H1行 当使用lookfor命令来查询函数的帮助时显示的信息帮助文本 用help命令可查询到帮助文本函数主体 函数中真正计算和输出赋值等工作的代码注释 为了增加函数体中代码的可读性而加入的说明性文本用type命令可显示以上所有的信息编写求一个向量之和以及向量平均值的函数文件。function s,m=fvector(v)%VECTOR fvector.m calculates sum and mean of a vector%v 向量%s 和%m 平均值%2008年12月10日编m,n=size(v);if (m1 & n1) | (m=1 & n=1)error(Input must be a vector)ends=sum(v); %求向量和m=s/length(v); %求向量平均值将以上函数文件以文件名fvector.m存盘,然后在MATLAB命令窗口调用该函数:s,p=fvector(1:10)用lookfor、 help、 type命令分别显示函数的相关信息函数文件中的return语句 例2-12编写一个计算阶乘的函数,如果阶乘的值小于等于四位,则输出阶乘的值y。如果阶乘的值大于四位,则输出最小的阶乘为5位数字的整数ifunction f=prod1(m)f=1;for i=2:m if f=1e4 f=i-1; return %中止当前执行的命令,返回到调用函数或等待键盘输入指令 end f=f*i;end函数调用 例2-13利用函数文件,实现直角坐标(x,y)与极坐标(,q)之间的转换。函数文件tran.m:function rho,theta=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);命令文件x=input(Please input x=:);y=input(Please input y=:);rho,the=tran(x,y)利用函数的递归调用,求n!function f=factor(n)if n=1 f=1;else f=factor(n-1)*n; %递归调用求(n-1)!end求s=1!+2!+3!+4!+5!。命令文件:s=0;for i=1:5 s=s+factor(i);endsnargin用法示例 例2-14输入参数为一个时进行平方运算,输入参数为两个时进行加法运算,为三个时,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- RAG技术问答平台设计课程设计
- 2026年注册结构工程师考试《结构设计原理》历年真题汇编及答案
- 人教版《道德与法治》八年级下册(部编版)第四单元《7.2自由平等的追求》教学设计
- 身份证信息提取系统实践课程设计
- 2026年税务师考试《税收筹划》专项训练试题及答案
- 英语三年级下册Lesson21IntheRestaurant.教案
- 高中历史 第三单元 古代中国的科学技术与文学艺术 第10课 充满魅力的书画和戏曲艺术新课教学设计1 新人教版必修3
- 习作:我做了一项小实验 教学设计语文三年级下册统编版
- 一年级语文下册 课文 4 语文园地六教学设计 新人教版
- 湖南省桑植县贺龙中学高中音乐鉴赏教案
- 气瓶检测站安全应急预案
- 拆除工程应急预案
- 中建施工临时用电施工方案
- 体育学院《体育教学论-体育教学目标》课件
- 电磁场与电磁波(第五版)PPT完整全套教学课件
- 盘锦市住宅区物业管理服务收费等级标准实用文档
- 水准点、导线点复测记录自动公式表
- GA 883-2018公安单警装备强光手电
- 七年级班主任开学第一课(班会)课件
- 相机采购报价单
- 公路互通立交设计某市政院ppt讲解
评论
0/150
提交评论