《计算机仿真技术》实验指导书主编:万峰高楠彭凯河北工业大学实验一 Matlab向量及矩阵的基本操作一实验目的熟悉MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息。
基本掌握MATLAB 向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。
了解字符串的操作。
二实验内容(1) 熟悉MATLAB 平台的工作环境及5 个基本窗口。
(2) 向量的生成和运算。
(3) 矩阵的创建、引用和运算。
(4) 多维数组的创建及运算。
(5) 字符串的操作。
三.实验设备Matlab7.0及以上版本软件四.实验步骤1. 熟悉MATLAB 的5 个基本窗口1) Command Window (命令窗口)在Command Window中依次输入以下命令:>>x=1>>y=[1 2 34 5 67 8 9]>>z1=[1:10], z2=[1:2:5]>>w=linspace(1,10,10)>>t1=ones(3) ,t2=ones(1,3),t3=ones(3,1)>>t4=zeros(3),t5=eye(4)观察输出结果,熟悉函数ones( )、zeros( )、eye( ) 的用法使用清除Command Window命令:clc2) Workspace (工作空间窗口)在Workspace中查看各个变量,或在命令窗口用who, whos查看各个变量。
使用save 按钮把工作空间的全部变量保存为my_var.mat 文件使用清除指定变量命令:clear 变量名使用清除Workspace命令:clear,观察变量是否清空使用Import data按钮读取my_var.mat 文件3) Command History (命令历史记录窗口)查看命令使用记录和时间4) Current Directory (当前目录窗口)查看my_var.mat 文件是否在当前目录下5) Help Window (帮助窗口)单击工具栏的help图标(黄色问号),或选择菜单View|Help,或选择菜单Help|MATLAB Help 都能启动帮助窗口。
通过Index 选项卡查找log2()函数的用法,在Search index for 栏中输入需要查找的词汇“log2”,在左下侧就列出与之最匹配的词汇条目,选择“log2[1]”,右侧的窗口就会显示相应的内容。
也可以通过Search 选项卡查找log2( )函数的用法。
Search 选项卡与Index 选项卡不同,Index 只在专用术语表中查找,而Search 搜索的是整个HTML 帮助文件。
2. MATLAB 的数值显示格式设置>>format long>>pi>>format short>>pi>>format long>>pi>>format +>>pi>>-pi观察输出结果3.向量的生成和运算1) 向量的生成直接输入法:>>A=[2,3,4,5,6] %生成行向量>>B=[1;2;3;4;5] %生成列向量冒号表达式法:>>A=1:2:10,B=1:10,C=10:-1:1函数法:>>A=linspace(1,10),B=linspace(1,30,10)>>A=logspace(0,4,5)2) 向量的运算维数相同的行向量之间可以相加减,维数相同的列向量也可相加减,标量可以与向量直接相乘除。
>>A=[1 2 3 4 5],B=3:7,>>AT=A',BT=B',%向量的转置运算>>E1=A+B,E2=A-B %行向量相加减>>F=AT-BT, %列向量相减>>G1=3*A,G2=B/3, %向量与标量相乘除向量的点积与叉积运算>>A=ones(1,10);B=(1:10); BT=B’;>>E1=dot(A,B) %dot 点积、内积>>E2=A*BT %注意E1 与E2 的结果是否一样>>clear>>A=1:3,B=3:5,>>E=cross(A,B) %cross,叉积,用于三维向量的运算4. 矩阵的创建、引用和运算1) 矩阵的创建和引用矩阵是由m×n 元素构成的矩形结构,行向量和列向量是矩阵的特殊形式。
直接输入法:>>A=[1 2 3;4 5 6]>>B=[1 4 72 5 83 6 9]>> A(1) %矩阵的引用>>A(4:end) %用“end”表示某一维数中的最大值>>B(:,1)>>B(:)>>B(5) %单下标引用抽取法:>>clear>>A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]>>B=A(1:3,2:3) %取A 矩阵行数为1~3,列数为2~3 的元素构成子矩阵>>C=A([1 3],[2 4]) %取A 矩阵行数为1、3,列数为2、4 的元素构成子矩阵>>D=A([1 3;2 4]) %单下标抽取,注意其结果和前一句有什么不同函数法:>>clear>>A=ones(3,4)>>B=zeros(3)>>C=eye(3,2)>>D=magic(3)拼接法:>>clear>>A=ones(3,4)>>B=zeros(3)>>C=eye(4)>>D=[A B]>>F=[A;C]2) 矩阵的运算矩阵加减、数乘与乘法已知矩阵:求A+B,2A,2A-3B,AB。
矩阵的逆矩阵>>format rat;A=[1 0 1;2 1 2;0 4 6] %分数显示,最后记得要format short 回到默认显示>>A1=inv(A)>>A*A1练习:用矩阵除法求下列方程组的解x=[x1;x2;x3];5.多维数组的创建及运算1) 多维数组的创建>> A1=[1,2,3;4 5 6;7,8,9];A2=reshape([10:18],3,3)>>T1(:,:,1)=ones(3);T1(:,:,2)=zeros(3) %下标赋值法>>T2=ones(3,3,2) %函数法>>T3=cat(3,A1,A2),T4=repmat(A1,[1,1,2]) %拼接和变形函数法2) 多维数组的运算数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算。
特点是两个数组相对应的元素进行运算。
>> A=[1:6];B=ones(1,6);>> C1=A+B,C2=A-B>> C3=A.*B,C4=B./A关系运算或逻辑运算的结果都是逻辑值。
>> I=A>3,C6=A(I)>> A1=A-3,I2=A1&A %由I2 的结果可知,非逻辑型进行逻辑运算时,非零为真,零为假。
>> I3=~I练习:创建三维数组A,第一页为,第二页为,第三页为,然后用reshape 函数重排为数组B,B 为3 行、2 列、2 页。
6. 字符串的操作1) 字符串的创建>>S1='I like MATLAB'>>S2='I''m a student.' %注意这里用两个连续的单引号输出一个单引号>>S3=[S2,'and',S1]2) 求字符串长度>> length(S1)>> size(S1) %注意length()和size()的区别3) 字符串与一维数值数组的相互转换>> CS1=abs(S1) %转换得到字符的ASCII 码>> CS2=double(S1)>> char(CS2)>> setstr(CS2)五.注意事项六.思考题用char( )和向量生成的方法创建如下字符串AaBbCcDd…XxYyZz,用最简洁的命令。
提示:A 和Z 的ASCII 码分别为65,90。
a和z为97,122实验二 MATLAB 数据可视化一实验目的掌握 MATLAB 二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图形文件的保存和读取。
二实验内容(1) 二维图形绘制。
(2) 三维曲线和三维曲面绘制。
(3) 图形文件的保存和读取。
三.实验设备Matlab7.0及以上版本软件四.实验步骤1.二维图形绘制(1) 二维图形绘制主要使用函数plot。
>> clear all;>> x=linspace(0,2*pi,100);>> y1=sin(x);>> plot(x,y1)>> hold on %保持原有的图形>> y2=cos(x)>> plot(x,y2)注:hold on 用于保持图形窗口中原有的图形,hold off 解除保持。
(2) 函数plot 的参数也可以是矩阵。
>> close all %关闭所有图形窗口>> x=linspace(0,2*pi,100);>> y1=sin(x);>> y2=cos(x);>> A=[y1 ; y2]'; %把矩阵转置>> B=[x ; x]'>> plot(B,A)(3) 选用绘图线形和颜色。
>> close all %关闭所有图形窗口>> plot(x,y1,'g+',x,y2, 'r:')>> grid on %添加网格线(4) 添加文字标注。
>> title('正弦曲线和余弦曲线')>> ylabel('幅度')>> xlabel('时间')>> legend('sin(x)', 'cos(x)')>> gtext('\leftarrowsinx') %可用鼠标选择标注的位置,%\leftarrow 产生左箭头,‘\’为转义符。