中南大学Matlab实验报告(优选.)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改
赠人玫瑰,手留余香。
Matlab实验报告
姓名:
班级:班
学号:
目录
实验一熟悉MATLAB环境 (3)
实验二数值数组创建、应用及可视化 ................................ 错误!未定义书签。
实验三字符串数组的使用、简单脚本文件和函数的编写错误!未定义书签。
实验四数据可视化方法 .. (22)
Matlab实验报告
实验室名称:综合实验楼4楼实验日期:2014年12月
[实验目的]
1 .熟悉 MATLAB 主界面,并学会简单的菜单操作。
2 .学会简单的矩阵输入与信号输入。
3 .掌握部分绘图函数。
[实验原理]
MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。
它提供了各种矩阵的运算与操作,并有较强的绘图功能。
用户第一次使用 MATLAB 时,建议首先在屏幕上键入 demo 命令,它将启动 MATLAB 的演试程序,用户可在此演示程序中领略MATLAB 所提供的强大的运算与绘图功能。
也可以键入 help 进行进一步了解。
MATLAB 启动界面如图所示:
操作界面主要的介绍如下:
指令窗(Command Window ),在该窗可键入各种送给MATLAB 运作的指令、函数、表达式,并显示除图形外的所以运算结果。
历史指令窗( Command History ),该窗记录已经运行过的指令、函数、表达式;允许
自己的编写文件。
MATLAB 工作时,基本搜索过程为:首先在工作空间,即MATLAB 内存中进行检查,看输入的指令是不是变量;如不是,则检查输入指令是不是内建函数(比如sin 函数等);如不是,则在当前目录上,检查是否有与输入指令相同的M 文件存在;如还没有,则在 MATLAB 定义的搜索路径其他目录中,检查是否有该 M 文件存在。
设置方法是通过 File 菜单下设置路径对话框进行。
二.熟悉简单的矩阵输入
1 .从屏幕上输入矩阵 A=[1
2
3 ;
4
5 6;7 8 9] 回车
A=[1,2,3;4,5,6;7,8,9] 回车
观察输出结果。
2 .试用回车代替分号,观察输出结果。
3 .输入 size(A) ,观察结果。
4 .输入矩阵 B=[9,8,7;6,5,4;3,2,1];回车
输入矩阵 C=[4,5,6;7,8,9;1,2,3];回车,然后分别键入 A B C 回车观察结果。
5 .选择 File | new 菜单中的M-file ,输入 B=[9,8,7;6,5,4;3,2,1] ;保存为 B.M 文件,退
出编辑环境。
此时在工作环境中使用 B 命令就可调出 B 矩阵。
6 .再试着输入一些矩阵,矩阵中的元素可为任意数值表达式,但注意 : 矩阵中各行各
列的元素个数需分别相等,否则会给出出错信息。
7 .输入 who 和 whos 观察结果,了解其作用。
二.常用基本命令的使用
数据文件的存取训练:利用 save 和 load 指令可以方便地把当前工作空间的数据变量保存为数据文件。
接题一,输入: save a 回车,表示把当前工作空间的所有变量保存为 a.mat
Matlab实验报告
实验室名称:综合实验楼4楼实验日期:2014年12月
x(3:end) % 寻访除前 2 个元素外的全部其他元素。
end 是最后一个元素的下标。
x(3:-1:1) % 由前三个元素倒排构成的子数组
x(find(x>0.5)) % 由大于 0.5 的元素构成的子数组
x([1 2 3 4 4 3 2 1]) % 对元素可以重复寻访,使所得数组长度允许大于原数组。
x(3) = 0 % 把上例中的第三个元素重新赋值为0。
x([1 4])=[1 1] % 把当前 x 数组的第一、四个元素都赋值为1。
x[3]=[] % 空数组的赋值操作
2 .二维数组
(1) 在命令窗口执行下面指令,观察输出结果
a=2.7358; b=33/79; % 这两条指令分别给变量 a , b 赋值。
C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i] % 这指令用于创建二维组C
M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16] % 创建复数数组的另一种方法
CN=M_r+i*M_i % 由实部、虚部数组构成复数数组
(2) 利用 M 文件创建和保存下面的数组(分号后面是一个空格后加3个小数点,表示
换行续写) AM=[101,102,103,104,105,106,107,108,109;...
201,202,203,204,205,206,207,208,209;...
301,302,303,304,305,306,307,308,309];
(3) 仿照问题 1 中方法找出数组⎥⎦
⎤⎢⎣⎡----=5311342024A 中所有绝对值大于 3 的元素。
(4)在命令窗口执行下面指令,体味二维数组的子数组寻访和赋值
A=zeros(2,4) % 创建(2*4)的全零数组
A(:)=1:8 % 全元素赋值方式
s=[2 3 5]; % 产生单下标数组行数组
A(s) % 由“单下标行数组”寻访产生 A 元素组成的行数组
Sa=[10 20 30]’ %Sa 是长度为 3 的“列数组”
A(s)=Sa % 单下标方式赋值
A(:,[2 3])=ones(2) % 双下标赋值方式:把 A 的第2 、3列元素全赋为1
(5) 运行指令
rand(‘state ’,11),A=rand(3,10000);B=(A>0.5);C=2*B-1;
首先预测(C*C’)/100 的运行结果,然后再在机器上验证。
(本方法提供了产生通信等仿真中常需若干独立的双随机码的方法原型。
)
(6) 在命令窗口执行下面指令,体味数组运算与矩阵运算的区别
clear ;A=zeros(2,3);
A(:)=1:6; % 全元素赋值法
A=A*(1+i) % 运用标量与数组乘产生复数矩阵
A_A=A.' % 数组转置,即非共轭转置,其中单引号实现转置功能
A_M=A' % 矩阵转置,即共轭转置
二.编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在2
1
及22处削顶。
图 1
可能用到的额外指令: find 、 hold on 、 hold off 、 legend ,具体使用方法使用 help +指令名来解答。
最后一题在实现hold on的过程中有难度,正在学习如何使用。
实验结论:
实验过程并不是很顺利,在实验过程中经常将中文的符号引入从而弄错结果,或者输入出错。
另一方面发现matlab的功能很强,还在继续研究中。
Matlab实验报告
实验室名称:综合实验楼4楼实验日期:2014年12月8日
点击MATLAB 指令窗工具条上的New File 图标,就可打开如上图所示的MATLAB 文件编辑调试器 MATLAB Editor/Debugger 。
其窗口名为 untitled ,用户即可在空白窗口中编写程序。
点击编辑调试器工具条图标,在弹出的Windows 标准风格的“保存为”对话框中,选择保存文件夹,键入新编文件名(如newfile.m ),点动【保存】键,就完成了文件保存。
运行可有两种方法,一种是直接点击编辑调试工具条图标,即可直接运行;或者使newfile.m 所在目录成为当前目录,或让该目录处在MATLAB 的搜索路径上, 然后在命令窗口键入指令 newfile +回车,便可得到运行结果。
调试程序方法有多种,常见的是设置断点的方法,将光标移到程序欲执行到的位置,点击编辑调试工具条图标,保存后运行,程序将停止在该语句位置并弹出编辑器界面等待用户下一步运行的指令,只有再次点击按钮,才继续向下执行。
相应的按下按钮,表示清除所有断点。
如果不设置断点,也可以在程序中加入pause 指令,使得程序在此处暂停,只有用户按任意键程序才依次向下执行。
则在 pause 指令的前面位置我们可以通过交互的方式得到我们想要的信息,以检测程序的正确性。
编写 MATLAB 脚本文件或函数文件时要区分开与 C 语言格式的不同。
MATALB 使用变量前不需要声明数据类型,对于所有的数值型数据MATLAB 均以Double 型存储。
另外编程时尽量使用 MATLAB 向量(数组)编程方式,可大大提高编程效率,尽量避免过多使用for 循环等语句。
MARLAB 提供了五种控制流的结构: for 循环结构, while 循环结构, if-else-end 分支结构,以及switch-case 结果、try-catch 结构。
这些控制指令用法与其他语言十分类似,这里只给出简要说明。
空间及其所有的中间变量就立即被清除。
假如在函数文件中,发生对某脚本文件的调用,那么该脚本文件运行产生的所有变量都存放在该函数空间中,而不是存放在基本空间。
[实验内容]
一.串数组的创建和寻访
1 .先请实际操作下例,以体会数值量与字符串的区别
clear % 清除所有内存变量
a=12345.6789 % 给变量 a 赋数值标量
class(a) % 对变量 a 的类别进行判断
a_s=size(a) % 数值数组 a 的“大小”
b='S' % 给变量 b 赋字符标量(即单个字符)
class(b) % 对变量 b 的类别进行判断
b_s=size(b) % 符号数组 b 的“大小
whos % 观察变量 a,b 在内存中所占字节
2 .已知串数组 a=”This is an example.”, 试将其到序输出。
3 .接上题,试执行ascii_a=double(a),观察其ASCII码,并将ASCII码变回字符串。
4 .设A=”这是一个算例”,重复上面的2-3。
5 .尝试用直接输入法在命令窗口创建字符串 s ,第一行时“ This string array ” , 第二行是“ has multiple rows. ”。
6 .利用串操作函数char、str2mat、strvcat分别写出使以下这段文字成为字符串的程序,注意保持这段文字的格式。
在英式用法中,引号通常是单引号,如‘Fire!’。
In GB usage quotation marks are usually single: ’Fire!’ .
二.脚本文件实现()π3
cos
14.0≤
3
,
e
y t,并在图上标出图名和极大值点坐
t
=t
≤
-
标。
如下图所示。
可能用到的函数: num2str, char, text, hold on, 具体应用自己查找 help 文档。
Matlab实验报告
实验室名称:综合实验楼4楼实验日期:2014年12月
则取消此功能。
对于想画多个独立的图形,则会用到figure(n)指令,这里n为整数,可顺序从1向后排。
如果想在特定图形中布置几幅独立的子图,则会用到subplot(m,n,k) ,即在(m×n)幅子图中的第k幅成为当前图;subplot(‘position’,[left botton width height]) ,表示在指定位置上开辟子图,并成为当前图。
使用clf指令可清除图形窗的内容。
另外MATLAB还提供了ginput、gtext、legend等交换指令。
[x,y]=ginput(n),可用鼠标从二维图形上获取n个点的数据坐标(x,y),该指令只适用于二维图形 , 在数值优化、工程设计中十分有用。
通常在使用前先对图进行局部放大处理。
[实验内容]
一.仿照运行,体会数据可视化方法。
1 .已知12
,
,1,0
=
n,()1
6-
-
n
y,运行下面程序,体会离散数据可视化方法。
说明:
% 用 plot 实现离散数据可视化
n=0:12; % 产生一组自变量数据
y=1./abs(n-6); % 计算相应点的函数值plot(n,y,'r*','MarkerSize',20) % 用红花标出数据点% 用stem实现离散数据可视化 n=0:12;
y=1./abs(n-6);
stem(n,y)
plot 和stem 指令均可以实现离散数据的可视化,但通常plot 更常用于连续函数中特殊点的标记;而stem 广泛运行与数字信号处理中离散点的图示。
用户在运行上面例程时会发现在命令窗口出现警告:Warning: Divide by zero !即警告程序中出现非零数除以0的指令。
MATLAB 对于这种情况并不中止程序只是给该项赋值为inf 以做标记。
2 .下面时用图形表示连续调制波形()()t t y 9sin sin =,仿照运行,分析表现形式不同的原因。
实验结果如图:
二.编程实现。
1 .用图形表示连续调制波形()()t t y 9sin sin =,过零点及其包络线,如下图所示。
clear
t1=(0:11)/11*pi; y1=sin(t1).*sin(9*t1); t2=(0:100)/100*pi; y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(1)'); subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图(2)');
源码:
clear
t=(0:pi/100:pi);
f1=sin(t);
f2=-sin(t);
y1=sin(t).*sin(9*t);
t3=pi*(0:9)/9;
y3=sin(t3).*sin(9*t3);
plot(t,f1,'r:',t,f2,'g:',t,y1,'b',t3,
y3,'bo');
axis([0,pi,-1,1])
function [x,n]=stepseq(n0,n1,n2)
%Generate x(n)=u(n-
n0);n1<=n<=n2
%[x,n]=stepseq(n0,n1,n2)
STEP = 0.01;
n = n1:STEP:n2;
x = n > n0;
精品word.
最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改
赠人玫瑰,手留余香。
41 / 41。