实验一 MATLAB基础训练

更新时间:2024-05-26 03:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 MATLAB基础训练

一、实验目的

本次上机实验主要练习使用Matlab的基本操作和基础知识,包括数组(复数、向量、矩阵、结构体数组等)的创建和数组元素的操作和运算、矩阵的运算、Matlab的运算符(尤其是点运算‘.’)、脚本M文件和函数M文件的编写、Matlab文件的编程(基本的流程控制结构)、基本的二维和三维绘图方法以及图形的标注等。希望通过本次实验使大家尽量在短时间内(4学时)掌握Matlab的基本操作和基础知识,为后面的实验项目奠定基础。

二、实验原理

参见PPT中有关内容。

三、实验内容

1. 上机练习课件中的例子。

2. 设两个复数a=1+2i, b=3-4i, 计算a+b, a-b, a*b, a/b, a和b的模。 3. 计算下式的结果,其中x=-3.5°, y=6.7°

sin(x?y)cos(x?y) (提示:① 应将角度单位由度转换为数学函数所能处理的弧度值;② 求根函数sqrt,取绝对值函数abs,具体用法用help查询)

?123???4. 对矩阵 A?456, 实现下列操作: ????789??(1) 左右翻转(fliplr命令) (2) 上下翻转(flipud命令)

(3) 利用cat命令分别将A扩展成3×6和6×3的矩阵 (3) 分别提取A的第2行,第2列,对角线元素 (4) 删除A的第2行2列的元素

(提示:将矩阵元素赋空阵[]可以删除元素,注意此时元素的访问只能使用单下标的方式。观察删除元素后,A中元素的排列方式的变化)

5. 创建[0,2?]区间上拥有100个等间隔元素的列向量(Matlab默认是行向量),并绘制...x.y=sin(x1/3)的函数图像。

6. 创建如下图所示的单结构体数组。

7. 编程训练:下图所示电路中,R1=2?, R2=4?, R3=12?, R4=4?, R5=12?, R6=4?, R7=2?, us=10V, 求i3。 (要求:以脚本M文件方式建立程序。此项练习M脚本文件的建立以及使用Matlab解线性方程组。)

(提示:先建立电路方程如下

?(R1?R2?R3)ia?R3ib?us???R3ib?(R3?R4?R5)ib?R5ic?0 ??Ri?(R?R?R)i?0?5b567c该线性方程组等价于矩阵形式:

AX?B

其中,A是包含R1~R7的系数矩阵, B=(us, 0, 0)T是常数矩阵, X=(ia, ib, ic)T =A-1B=A\\B为解向量。因此使用矩阵除法(注意区别左除和右除)可以迅速解出ia, ib, ic。 最后i3= ia-ib=0.3704。)

8. 编程训练:已知某电路的电流i(t)的表达式为

i(t)?0.88?nxen?110?nx

画出[-?, ?]区间上的电流波形。 (要求:① 以脚本M文件方式建立程序;② 用12号字体给图形加上标注‘t’和‘i(t)’,红色曲线+圆形标记‘o’,如下图所示。此项练习二维绘图方法、图形的标注和循环控制结构)

9. 编程训练:已知x,y的取值范围是[a,b],若a=﹣8, b=8, 画出z?sin(x2?y2)x?y22所表示的三维曲面。(要求:① 以脚本M文件方式建立程序;② 使用surf和mesh函数分别绘出曲面图和网格图,参考图形如下。此项练习三维绘图方法)

10. 以函数M文件的方式重做第9个项目,其中函数的输入参数为a和b。(此项练习M函数文件的建立)

11. 建立如下图所示的用户界面菜单。要求:(A)把用户菜单 'Option' 设置为顶层的第3菜单项;(B)下拉菜单被两条分隔线分为三个菜单区;(C)最下菜单项又有两个子菜单组成。(此项练习用户菜单的建立,写出M文件)

四、实验要求

以上训练项目要求在4个实验学时内完成,并提交项目7-11的程序。

五、思考题

1. 举例说明如何创建三维数组?

2. 第9个训练项目中,函数z的表达式中,分子可能被0除,导致绘图数据点中出现非数NaN,绘出的图形不正确。如何解决这一问题?

3. 如何将第9个项目中的两幅图放在同一个图形窗口中显示?(提示:使用subplot命令将图形窗口分割成1×2的子窗口。subplot(m,n,i)将图形窗口分割成m×n的子窗口,并指定第i个子窗口为图形的绘制区域)

4. surf函数绘出的三维图一般有黑色格线,如何消掉黑色格线?以第9个项目为例说明。

实验一

第7题

R1=2,R2=4,R3=12,R4=4,R5=12,R6=4,R7=2,Us=10;

A=[R1+R2+R3,-R3,0;-R3,R3+R4+R5,-R5;0,-R5,R5+R6+R7]; B=[Us;0;0]; X=A\\B;

i3=X(1)-X(2)

第8题

t=-pi:0.01:pi; i=0;

for n=1:10

i=i+0.88*n*t.*exp(-n*abs(t)) end

plot(t,i,'r-o')

xlabel('t','FontSize',12); ylabel('i(t)','FontSize',12); 第9题(1) a=-8,b=8;

x=linspace(a,b,40);

y=linspace(a,b,40); [xx,yy]=meshgrid(x,y);

zz=sin(sqrt(xx.*xx+yy.*yy))./sqrt(xx.*xx+yy.*yy); mesh(xx,yy,zz)

第9题(2) a=-8,b=8;

x=linspace(a,b,40); y=linspace(a,b,40); [xx,yy]=meshgrid(x,y);

zz=sin(sqrt(xx.*xx+yy.*yy))./sqrt(xx.*xx+yy.*yy); surf(xx,yy,zz)

第10题(1)

function f(a,b)

x=linspace(a,b,40); y=linspace(a,b,40); [xx,yy]=meshgrid(x,y);

zz=sin(sqrt(xx.*xx+yy.*yy))./sqrt(xx.*xx+yy.*yy); mesh(xx,yy,zz)

第10题(2)

function g(a,b)

x=linspace(a,b,40); y=linspace(a,b,40); [xx,yy]=meshgrid(x,y);

zz=sin(sqrt(xx.*xx+yy.*yy))./sqrt(xx.*xx+yy.*yy); surf(xx,yy,zz)

第11题程序: figure

h_menu=uimenu('label','Option','Position',3);

h_sub1=uimenu(h_menu,'label','grid on','callback','grid on'); h_sub2=uimenu(h_menu,'label','grid off','callback','grid on'); h_sub3=uimenu(h_menu,'label','box on','callback','box on',... 'separator','on'); h_sub4=uimenu(h_menu,'label','box off','callback','box off');

h_sub5=uimenu(h_menu,'label','Figure Color','Separator','on'); h_subsub1=uimenu(h_sub5,'label','Red','ForeGroundColor','r',... 'callback','set(gcf,''Color'',''r'')'); h_subsub2=uimenu(h_sub5,'label','Reset',... 'callback','set(gcf,''Color'',''w'')');

本文来源:https://www.bwwdw.com/article/ho87.html

Top