第一篇:MATLAB实验4
学 生 实 验 报 告
课程名称:
学生学号:
所属院部:
(理工类)
专业班级:
学生姓名:
指导教师: ——20 学年 第 学期
实验项目名称: MATLAB综合运用 实验学时: 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
1、会用MATLAB求电阻电路。(节点电压法、戴维南定理等)
2、会用MATLAB求正弦稳态电路。
3、掌握自动控制系统中模型的转换方法。
4、会用MATLAB求自动控制系统的传递函数。
二、实验仪器和设备
计算机一台
三、实验过程
1、已知条件如下图所示。求:RL为何值时,能获得最大功率.U1 U2
RL
R1=6Ω R2=1Ω R3=3Ω
经过R1的电流为I1,经过R2的电流为I2,把RL用电流源代替(Ia方向从上到下),经过电路化简得:Ia=4/3+I2 列出节点方程:(1/6+1+1/3)U1-U2=I1(其中I1=12/6=2A,I2=2A)(节点电流的流入和流出)
-U1+U2=I2-Ia(等效的U1,U2)
运用MATLAB计算出U1,U2的值,U2即是戴维南等效电路中的Uoc,令电压源短路,电流源断路,求得ab左边等效电阻Req,当Req=RL时,PMAX=Uoc^2/4Req
2、已知Us=100V,I1=100mA,电路吸收功率P=6W,XL1=1250,XC2=750,电路呈感性,求R3及XL3。
设电源的总阻抗为ZRjX,由图可知ZZ1UZ2*Z3,总阻抗的模为Zs
IZ2Z3由于Z1,Z2为纯阻抗元件,它们不吸收有功功率,故
RP I22ZR2X2XZR2 得知电感电路呈感性,取“+”,即有ZRjX Z2,Z3的并联阻抗为Z23ZZ1ZjXL1 而Z3Z2*Z23
Z2Z23有R3real(Z3),XL3=imag(Z3)
3、求图示系统的传递函数,其中K1=10,K2=20。
4、已知系统状态空间模型为:
求其零极点模型。
5、系统的零极点增益模型如下:
求系统的传递函数模型和状态空间模型。
四、实验结果与分析
在本次实验中,初步了解了MATLAB在自动控制系统中的运用,通过从实验中得到的锻炼,提高了动手能力和自我学习能力。
第二篇:MATLAB实验指导书
MATLAB及其应用
实验指导书
物理与信息工程系
目录
实验一 MATLAB编程环境..............................................3 实验二 矩阵基本运算
(一)..........................................5 实验三 矩阵基本运算
(二)..........................................7 实验四 矩阵分析...................................................9 实验五 分支结构程序设计..........................................11 实验六 循环结构程序设计..........................................13 实验七 文件操作..................................................15 实验八 二维曲线的绘制............................................17 实验九 三维曲线和曲面的绘制......................................19 实验十 MATLAB数据统计处理........................................21 实验十一 多项式四则运算..........................................23 实验十二 线性方程组求解及函数求极值.............................25 实验一 MATLAB编程环境
一、实验目的
1.熟悉MATLAB编程环境
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.首先应熟悉MATLAB7.0运行环境,正确操作 2.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)命令窗口的使用。(2)工作空间窗口的使用。(3)工作目录、搜索路径的设置。(4)命令历史记录窗口的使用。(5)帮助系统的使用。(6)了解各菜单的功能。2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验二 矩阵基本运算
(一)一、实验目的
1.通过实验,进一步熟悉MATLAB编程环境 2.通过实验掌握建立矩阵的几种方法 3.通过实验理解常用的矩阵运算
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.首先应熟悉MATLAB7.0运行环境,正确操作 2.自主编写程序,必要时参考相关资料 3.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)设A和B是两个同维同大小的矩阵,问:
1)A*B和A.*B的值是否相等? 2)A./B和B.A的值是否相等?
3)A/B和BA的值是否相等?操作过程参照教材中除法的矩阵生成。4)A/B和BA所代表的数学含义是什么?(2)写出完成下列操作的命令。
1)将矩阵A第2—5行中第1,3,5列元素赋给矩阵B。2)删除矩阵A的第7号元素。3)将矩阵A的每个元素值加30。4)求矩阵A的大小和维数。(3)下列命令执行后,L1、L2、L3、L4的值分别是多少/ A=1:9;B=10-A;L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验三 矩阵基本运算
(二)一、实验目的
1.熟悉矩阵的建立方式 2.理解矩阵拆分的方法
3.通过实验进一步掌握矩阵的基本运算
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
154831,B253 078(1)已知A3203617求下列表达式的值:
1)A+6B和A2-B+I(I为单位矩阵,matlab中使用eye来生成)2)A*B,A.*B和B*A 3)A/B和BA
4)[A,B]和 [A([1,3],:);B^2](2)已知
0.778023104145655,取出其前三行构成矩阵B,其前两列构成矩A325032543.1469.54阵C,其右下角3×2子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求E
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会
实验四
矩阵分析
一、实验目的
1.学会求矩阵的对角线元素、对角阵和逆矩阵 2.学会求矩阵的行列式的值、秩 3.学会求矩阵的特征值和特征向量 4.通过练习熟悉矩阵分析方法
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)使用函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A,A左旋后得到B,右旋后得到C。使用函数rot90(A,k)来实现;
101112321471078965,A25811B456,C9836912123121114 710(2)建立一个方阵A,求A的逆矩阵和A的行列式的值,并验证A与A-1是互逆的。A的逆(inv(A));A的行列式(det(A))(3)求下列矩阵的主对角线元素、上三角阵、下三角阵、秩和迹。参考教材
1125141)A3051115030.434322
2)B8.9421 29(4)求矩阵A的特征值。参考教材
10.51 A110.250.50.2522.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验五
分支结构程序设计
一、实验目的
1.理解MATLAB的编程方法
2.掌握if语句和switch语句的使用 3.掌握分支结构程序设计方法
4.通过练习理解MATLAB编程方法和分支结构程序设计方法。
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)从键盘输入一个数,将它反向输出,例如输入693,输出为396(2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现
2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息
2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验六
循环结构程序设计
一、实验目的
1、理解循环控制结构的执行过程
2、掌握for语句和while语句的使用
3、掌握循环结构程序设计方法
4、通过练习进一步理解MATLAB的编程方法和循环结构程序设计方法
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)编写程序实现求两矩阵A.*B.(2)编写程序实现求矩阵的转置。2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会
实验七
文件操作
一、实验目的
1、掌握文件的建立、打开与关闭和文件的读写操作
2、理解文件定位操作
3、通过练习理解文件的基本操作
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 4.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)以读写方式打开二进制格式数据文件,将浮点数X添加到文件末尾,将文件内容以浮点数格式读入变量Z,将文本文件的第二行读入变量H,向文件尾部移动文件指针6个字节。
sin(x1.7)lnx,当x取-3.0、-2.9、-2.8、…、2.8、2.9、3.0时,(2)已知y21cos(x1.7)求各点的函数值。要求:将函数值输出到一个数据文件中;从数据文件中读出数据,求各点函数值的平均值;将平均值添加到数据文件末尾。(3)编写程序,该程序能读取一个文本文件,并能将文本文件中的小写字母转换为相应的大写字母而生成一个新的文本文件。2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会
实验八
二维曲线的绘制
一、实验目的
1、理解MATLAB绘图方法
2、掌握绘制二维数据曲线图的方法
3、掌握用plot函数和fplot函数绘制曲线的方法
4、通过练习掌握绘制二维数据曲线图的方法和plot函数和fplot函数的使用
二、实验环境
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 4.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)绘制下列曲线:
x1①yx
②ye323x22xrsint
③x2y6④
yrcost22(2)通过用plot和fplot函数绘制ysin1的曲线,并分析其区别。x解释:fplot函数的调用格式为: fplot(fname,lims,tol,选项)
其中fname为函数名,以字符串形式出现,lims为x,y的取值范围,tol为相对允许误差,其系统默认值为2e-3。选项定义与plot函数相同。2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。
(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(5)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验九
三维曲线和曲面的绘制
一、实验目的
1、理解三维曲线的绘制
2、理解曲面图的绘制
3、通过练习熟悉三维曲线和曲面图的绘制方法
二、实验器材
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)绘制下列三维曲线
xet/20costt/201)yesint,0t2
2)zt(2)绘制下列曲面图
1)z=5,|x|≤5,|y|≤5
2)f(x,y)xt2yt,0t1 zt351xy22,x3,y3
2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。
(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(6)检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十
MATLAB数据统计处理
一、实验目的
1、掌握MATLAB求最大最小值的方法
2、掌握MATLAB求均值与方差的方法
3、通过练习以下内容熟悉数据统计处理的几种方法
二、实验器材
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:均值mean和标准方差std;最大元素max和最小元素min;大于0.5的随机数个数占总数的百分比 2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。
(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。(6)检查程序输出结果。
五、实验报告要求
1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十一
多项式四则运算
一、实验目的
1、掌握多项式求值、求根的方法
2、理解多项式四则运算
3、通过练习熟悉多项式四则运算和多项式求值、求根的方法
二、实验器材
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
4322有3个多项式P1(x)x2x4x5,P2(x)x2,P3(x)x2x3,1)求P(x)= P1(x)+ P2(x)P3(x)2)求P(x)的根
3)当x取矩阵A的每一元素时,求P(x)的值,其中
11.21.4 A0.7523.552.504)当以矩阵A为自变量时,求P(x)的值 2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。
(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(6)检查程序输出结果。
五、实验报告要求
1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十二
线性方程组求解及函数求极值
一、实验目的
1、理解线性方程组求解方法
2、理解函数求极值方法
3、通过练习以下内容熟悉求解线性方程组的方法和函数求极值的方法
二、实验器材
1.计算机
2.MATLAB7.0集成环境
三、实验说明
1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)求下列方程组的解
2x3y5z101)3x7y4z2)
x7yz56x15x22x35x449xx4xx131234 3x4x2x2x123413x19x22x411(2)求下列函数在指定区间的最大值
1x2,x(0,2)
2)f(x)sinxcosx2,x(0,)1)f(x)41x2.实验步骤
(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。
(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。
(6)检查程序输出结果。
五、实验报告要求
1.整理实验结果,填入相应表格中 2.小结实验心得体会
第三篇:matlab实验心得体会
matlab实验心得体会
]这个就是我自己做出来的,发现用soundsc听出来还行,但是用wavwrite就变的很难听。后来发现PB写的很好,而且还能够把前面一段没有噪音的部分给保存下来,我就看了他的代码,有几点体会:
1.将代码写在.m文件里,这样只需要该文件里的就可以而不必每次都去敲命令;
2.PB对于vector使用的比较熟,我一开始也想到能不能只将后面一段由噪声的给滤掉而保留以前的,但是没想到什么方法,看了PB的代码发现,他对于vector了解的比较深刻,我上面的想法最后只使用一句代码就搞定了
3.对于噪声频率,一定要选准确,PB对每一段噪声只使用的一个频率,就将噪声滤干净了,我用了每段噪声附近的几个波形还没有得到理想波形,最后我发现我选的中心频率和PB的只相差10~25赫兹,所以一定要精确,后来WH又试了一下,只发现改变5HZ的频率都不行
4.加入团队以来,尤其是加入种子班之后就一直告诫自己要时刻抱着一个学习的心态,对于任务不要只是敷衍,完成就好,而是自己一定要从中学到东西,而且在这个过程中一定要逐步掌握自己的学习方法,但是就是这个Matlab,我就是在敷衍了事,所以没有什么事情是可以敷衍的,学习发生在每时每刻,不能因为这是必上的课程而自己没有兴趣就蒙混过关,应该利用这个机会锻炼自己,积极起来,改变自己懒惰的弱点。
PS:附上修改后的代码
%get the samples rate and vector of the wave [xx, fs] = wavread('SunshineSquare');xx = xx';specgram(xx, [], fs);
%^get the A from the frequencies of the noises fnoise = [0 1575 3150 4725];ww = 2*pi*fnoise/fs;A =-2*cos(ww);
%seperate the wave based on the tone “du” leng = length(xx);du = floor((7.749/10.791)*leng);
%determine the h[n] of correspond noise hh = [1 A(1)1];for i = 2:4 hh1 = [1 A(i)1];hh = conv(hh, hh1);end
%filter the noise yy = filter(hh, 1, xx);%delete the tone “du” yy(du100 : du + 80)= 0;figure(2);specgram(yy, [], fs);wavwrite(yy,fs,32,'filter1');
%replace the wave which has been filtered with the good part du = floor((7.749/10.791)*leng);yy(1:du)=xx(1:du);%delete the tone “du” yy(du100 : du + 80)= 0;
%paint the picture and play it figure(3);specgram(yy, [], fs);soundsc(yy,fs);wavwrite(yy,fs,32,'filter2');
第四篇:matlab数学实验体会
Matlab学习心得
数学实验周我们学习了Matlab软件,这是一个十分实用和重要的软件。初次结识MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,一直在上面弄,除了会画几个简单的三维图形,其他的还是有待提高。在这个软件中,虽然有help。大家不要以为有了这个就万事大吉了,反而,从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如你不会外语,想学好是非常难的。
Matlab 语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。
作为一种计算机语言,Matlab体现了与它价值的相符的优点:
1.编程简单使用方便。在这方面我感觉C语言也是一种简单的编程语言。只要入门就很好掌握,但是要学习一门语言不是那么容易的,到目前为止,可以说我还没入门,所以学习起这门语言来很吃力。相对C语言而言,Matlab的矩阵和向量操作功能是其他语言无法比拟的。在Matlab环境下,数组的操作与数的操作一样简单,基本数据单元是不需要指定维数的,不需要说明数据类型的矩阵,而其数学表达式和运算规则与通常的习惯相同。
2.函数库可任意扩充。由于Matlab语言库函数与用户文件的形式相同,用户文件可以像库函数一样随意调用,所以用户可任意扩充库函数。
3.语言简单内涵丰富。在此语言中,最重要的成分是函数,一般形式为:Function[a,b,c„„]=fun(d,e,f„„)Fun是自定义的函数名,只要不与库函数想重,并且符合字符串书写规则即可。
4、简便的绘图功能。MATLAB具有二维和三维绘图功能,使用方法简单。三维曲线是由plot3(x,y,z)命令绘出的,看上去很简单的一个程序,相对C语言而言。极大的方便了绘图的工作和节省工作时间。
5.丰富的工具箱。由于MATLAB 的开放性,许多领域的专家都为MATLAB 编写了各种程序工具箱。这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。
在理论方面,在学习MATLAB过程中,我感觉到它和c语言有许多相似之处,他有c语言的特征,但是比c语言编程计算更加简单,适合于复杂的数学运算。但是MATLAB跟其他语言也有着很大的不同。
众所周知MATLAB是一个基于矩阵运算的软件,但是,真正在运用的时候,特别是在编程的时候,许多人往往没有注意到这个问题。在使用MATLAB时,受到了其他编程习惯的影响,特别是经常使用的C语言。因此,在MATLAB编程时,for循环(包括while循环)到处都是。这不仅是没有发挥MATLAB所长,还浪费了宝贵的时间。我这里想说的一点是,往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++、C的思想。多用help,see also,lookfor,get, set 等常用命令,尽量摆脱c编程的习惯,总爱用循环,能不用的循环的尽量不用,掌握矢量化的精髓。(1)help: 最有效的命令。其实,可以这样说吧,一遇 到什么问题,通常可以从 help 中找到答案。就先说说对help的一些常用方法。
1)命令窗口直接敲“help”,你就可以得到本地机器上matlab的基本的帮助信息。
2)对于某些不是很明确的命令,只知道大体所属范围,譬如说某个工具箱,直接在命令窗口中敲入 help toolboxname,一帮可以得到本工具箱有关的信息:版本号,函数名等。
(2)lookfor:可以说是 matlab中的google。当我们很多什么头绪都没有的时候,我们可以求助于它,往往会收到意想不到的效果。譬如:曾经在gui编程的时候,遇到过这样一个问题:想拖动鼠标时,要出现一个方框,就像你在桌面上拖动鼠标,会出现虚线框一样。当初我也刚开始一定都不知道该查找什么东西,后来想起用它了。于是,>> lookfor Rectangle。这样一条信息:GETRECT Select rectangle with mouse.get,set: GUI object 属性的帮手在GUI编程中,我们可能有时候想改变某些object的属性,或者想让它安装自己的想法实现,但是我们又不记得这些object的属性,更别提怎么设置他们的值了。这时,可以用 get(handles得到此对象的所有的属性及其当前值。用set(handles)可以得到对象所有可以设置的属性及其可能的取值找到我们需要的属性名字和可能的取值之后,就意义用 get(handles,‘propertyname’)取得此属性的值,用set(handles,‘propertyname’,values)设置此对象此属性的值。Edit: 查看m源文件的助手在应用matlab过程中,可能我们想看看它的m源文件,当然用editor定位打开也行,但是我经常采用的式直接在command窗口中用edit funname.m,就省去了定位的麻烦。
以上就是我学习MATLAB几个月以来的心得与体会,我自己感觉在理论方面自己理解的还是可以的,但是在实践中会经常遇到一些问题,而恰恰自己又束手无策。但是我经常上一些贴吧,那里有不少是使用MATLAB的高手,可以帮我解决不少问题,同时自己也学到了不少东西。
第五篇:《Matlab语言》实验四
实验
四、Matlab的程序设计
(一)实验目的
1.掌握利用if语句实现选择结构的方法。
2.掌握利用switch语句实现多分支选择结构的方法。3.掌握利用for语句实现循环结构的方法。4.掌握利用while语句实现循环结构的方法。5.掌握Matlab函数的编写及调试方法。
(二)实验环境
1.计算机
2.MATLAB7.0集成环境
(三)实验内容
1、编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。function y=myfun1(x)sinx,y(x)x,x6,x00x3x3
选择一些数据测试你编写的函数。function [y]=myfun1(x)if x<=0
y=sin(x);elseif x>0&x<=3 y=x;elseif x>3 y=-x+6;End 结果: >> x=5;>> [y]=myfun1(x)y = 1
2、编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。
function [m_x,max_x,min_x,rms_x]=myfun2(x)方均根值(Root Mean Square)的计算公式为:
rms1NNi1xi2
用下面数据测试你写的函数:
function [m_x,max_x,min_x,rms_x]=myfun2(x)%求平均值
sum_x=sum(x);%向量元素求和
[m,n]=size(x);%最好用n=length(x);m_x=sum_x/n;
%求最大值 采用逐个比较方式 if x(1)>x(2)max_x=x(1);else
max_x=x(2);end for k=3:n
if max_x else max_x=max_x;%可省略 end end %求最小值 if x(1) min_x=x(2);end for k=3:n if min_x>x(k) min_x=x(k); else min_x=min_x;%可省略 end end %求均方根值 sum_x2=0;for k=1:n sum_x2=sum_x2+x(k).^2;rms_x=sqrt(sum_x2/n);end m_x;max_x; min_x; rms_x;%按照函数值行(1)x=sin(0:0.01:6*pi)运行结果:>> x=sin(0:0.01:6*pi);>> [m_x,max_x,min_x,rms_x]=myfun2(x)m_x =-1.1256e-007 max_x = 1.0000 min_x =-1.0000 rms_x = 0.7071(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。>> x=rand(1,200);>> [m_x,max_x,min_x,rms_x]=myfun2(x)m_x = 0.5231 max_x = 0.9994 min_x = 0.0056 rms_x = 0.5869 3、编写求解方程axbxc0的根的函数(这个方程不一定为一元二次方程,因a、b、c的不同取值而定),这里应根据a、b、c的不同取值分别处理,有输入参数提示,当a0,b0,c~0时应提示“为恒不等式!”。并输入几组典型值加以检验。2M文件: disp('关于方程ax^2+bx+c=0')a=input('请输入系数a=');b=input(' b=');c=input(' c=');if a==0&&b==0 if c==0 disp('解为全体实数'); else disp('为恒不等式!'); end else P=[a,b,c]; x=roots(P)end disp('关于方程ax^2+bx+c=0')a=input('请输入系数a=');b=input(' b=');c=input(' c=');if a==0&&b==0 if c==0 disp('解为全体实数'); else disp('为恒不等式!'); end else P=[a,b,c];x=roots(P)end 工作空间测试: 关于方程ax^2+bx+c=0 请输入系数a=2 b=4 c=6 x =-1.0000 + 1.4142i-1.0000-1.4142i 4、输入一个百分制成绩,要求输出成绩等级A+、A、B、C、D、E。其中100分为A+,90分~99分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。要求:(1)用switch语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 g=input('请输入成绩'); if g<0||g>100 disp('错误,输入的成绩应为0~100间的数') else g=fix(g/10); switch g case {10} disp('A+'); case {9} disp('A'); case {8} disp('B'); case {7} disp('C'); case {6} disp('D') otherwise disp('E'); end5、利用for循环语句编写计算n!的函数程序,取n分别为-89、0、3、5、10验证其正确性(输入n为负数时输出出错信息)。n=input('请输入n='); if n<0 disp('错误,n取值必须为正数'); else y=1; for i=1:n y=y*i; end disp('n!=');disp(y) 测试: 请输入n=6 n!= 720 6、Fibonacci数组的元素满足Fibonacci规则:现要求该数组中第一个大于10000的元素。 a(1)=1;a(2)=1; k=3; a(k)=a(k-1)+a(k-2); while a(k)<10000 k=k+1; a(k)=a(k-1)+a(k-2); 测试: >> ak=a(k)ak = ak2akak1,(k1,2,);且a1a21。10946 27、根据6112122132......1n,求的近似值。 2要求:(1)分别采用for循环结构以及向量法来编程实现,比较两种方法程序运行时间;(2)当n分别取100、1000、10000时,结果是多少? n=[100 1000 10000]; for j=1:3 y=0;k=n(j); for i=1:k y=y+1/i/i; end pai=sqrt(6*y);disp('n='); disp(n(j)); disp('π的近似值为'); disp(pai);结果: n= 100 π的近似值为 3.1321 n= 1000 π的近似值为 3.1406 n= 10000 π的近似值为 3.1415 (四)实验要求 1、熟练操作MATLAB7.0运行环境; 2、自主编写程序,必要时参考相关资料; 3、实验前应写出程序大致框架或完整的程序代码; 4、完成实验报告。 (五)实验报告要求 见实验一。 思考题 1、M文件分为哪两类?这两类M文件的区别是什么? 答:分为命令文件和函数文件 1)函数文件一般都要带参数 , 都要有返回结果 , 而命令文件没有参数与返回结果 2)函数文件的变量是局部变量 , 运行期间有效 , 运行完毕就自动被清除 , 而命令文件的变量是全局变量 , 执 行完毕后仍被保存在内存中 3)函数文件要定义函数名 , 且保存该函数文件的文件名必须是函数名.m。M 函数文件可以有多个因变量和多 个自变量 , 当有多个因变量时用[ ] 括起来。 2、有一分数序列: 1, 3, 5, 8, 1321 22358, 13, 编写一段程序,求前16项的和。 a=2.0;b=1.0;c=a/b; for 1:16 {b=a;a=a+b; d=(a+b)/a;c=c+d;}