在Word环境下使用MATLAB
13.3 输出格式控制 输出格式控制包括输出数据控制和输出图形控制。 输出格式控制包括输出数据控制和输出图形控制。 可以通过Notebook菜单中的 菜单中的Notebook Options命 可以通过 菜单中的 命 令来实现。 令来实现。
13.3.1 数据输出控制 1.输出数据的表示方式 .
2.输出数据间的空行控制 .
clear; x=0:pi/20:2*pi; k=1; hold on;
行命令, 菜单中的Evaluate Loop命令打 (2)选中以下 行命令,再选择 )选中以下3行命令 再选择Notebook菜单中的 菜单中的 命令打 开循环执行对话框,取重复10次 单击Start按钮,命令循环执行。 按钮, 开循环执行对话框,取重复 次,单击 按钮 命令循环执行。 y=k*sin(x); plot(x,y); k=k+1; 按钮, (3)待循环结束,单击 )待循环结束,单击Close按钮,关闭对话框。 按钮 关闭对话框。
13.1.2 Notebook的启动 的启动 启动Notebook有两种方法:从Word中启动或从 有两种方法: 启动 有两种方法 中启动或从 MATLAB命令窗口启动。 命令窗口启动。 命令窗口启动 1.从MATLAB中启动 中启动Notebook . 中启动 Notebook或Notebook文件名 或 文件名 2.从Word中启动 中启动Notebook . 中启动
13.2.2 自动初始化单元 可以把文本形式的MATLAB命令或已经存在 可以把文本形式的 命令或已经存在 的输入单元定义为自初始化单元。 的输入单元定义为自初始化单元。其方法 先选中它们,然后选择Notebook菜单 是:先选中它们,然后选择 菜单 中的Define AutoInit Cell命令即可。 命令即可。 中的 命令即可 在打开M-book文档以后,新定义的自动初始 在打开 文档以后, 文档以后 化并不会自动执行,须另外进行运行操作。 化并不会自动执行,须另外进行运行操作。 运行自活细胞的方法同输入细胞一样, 运行自活细胞的方法同输入细胞一样,选 菜单命令或按Ctrl+Enter 择Eva1uate Cell菜单命令或按 菜单命令或按 + 键。
2.整个M-book文档输入单元的执行 .整个 文档输入单元的执行 Notebook菜单项中的 菜单项中的Evaluate M-book命令可以把整个 菜单项中的 命令可以把整个 M-book文档中的所有输入单元送到 文档中的所有输入单元送到MATLAB中去执行。 中去执行。 文档中的所有输入单元送到 中去执行 3.删去M-book文档中所有输出单元 .删去 文档中所有输出单元 Notebook菜单项中的 菜单项中的Purge Output Cells命令可以删去 菜单项中的 命令可以删去 M-book文档中所有输出单元。具体操作方法为:先选中全 文档中所有输出单元。 文档中所有输出单元 具体操作方法为: 部文档,然后操作。 部文档,然后操作。 4.单元转化为文本 . 单元转化为文本的方法是:选定单元,再选择Notebook 单元转化为文本的方法是:选定单元,再选择 菜单中的Undefine Cells命令。或将光标置于单元之中,按 命令。 菜单中的 命令 或将光标置于单元之中, 组合键Alt+ 。 组合键 +U。
2.输出单元 . 输入单元执行后产生输出单元。 输入单元执行后产生输出单元。如果输入单元经修 改后重新执行,那么新的输出单元将替换原有的 改后重新执行, 输出单元。图形的输出格式则通过Notebook菜单 输出单元。图形的输出格式则通过Notebook菜单 中的Notebook Options来设置。 来设置。 中的 来设置
13.2 单元的使用 13.2.1 输入输出单元 1.输入单元 . 定义输入单元的方法是:首先选中所需命令, 定义输入单元的方法是:首先选中所需命令,然后 菜单项中选择Define Input Cell命令, 命令, 在Notebook菜单项中选择 菜单项中选择 命令 于是被选中的MATLAB命令成为输入单元。定义 命令成为输入单元。 于是被选中的 命令成为输入单元 输入单元也可以在选中所需命令后, 输入单元也可以在选中所需命令后,直接按组合 键Alt+D。 Alt+D。 为了执行输入单元,应选择Notebook菜单项中的 为了执行输入单元,应选择 菜单项中的 Evaluate Cell命令或直接按组合键 命令或直接按组合键Ctrl+Enter。 命令或直接按组合键 。
文档中定义输入单元, 例13-1 在M-book文档中定义输入单元,要求产生一个 阶魔 文档中定义输入单元 要求产生一个5阶魔 方阵,并求相应的逆矩阵和各元素的倒数矩阵。 方阵,并求相应的逆矩阵和各元素的倒数矩阵。 操作步骤如下: 操作步骤如下: (1) 在文档中输入 在文档中输入MATLAB命令: 命令: 命令 x=magic(5) y=inv(x) z=x.^(-1) (2) 选中命令行,在Notebook菜单项中选 选中命令行, 菜单项中选Define Input 菜单项中选 Cell命令或直接按组合键 命令或直接按组合键Alt+D,于是命令行就变成了 命令或直接按组合键 , 绿色”的输入单元。 “绿色”的输入单元。 (3) 若要把输入单元送去执行,则可用 若要把输入单元送去执行,则可用Notebook菜单项中 菜单项中 命令或直接按组合键Ctrl+Enter,执行 的Evaluate Cell命令或直接按组合键 命令或直接按组合键 , 后产生“蓝色”的输出单元: 后产生“蓝色”的输出单元: 输入单元的定义与执行也可以同时进行。 输入单元的定义与执行也可以同时进行。先选中 MATLAB命令,然后从 命令, 菜单项中选择Evaluate 命令 然后从Notebook菜单项中选择 菜单项中选择 Cell命令或直接按组合键 命令或直接按组合键Ctrl+Enter,不但使被选中的 命令或直接按组合键 , 命令成为输入单元,而且送去执行,产生输出单元。 命令成为输入单元,而且送去执行,产生输出单元。
环境下使用MATLAB 第13章 在Word环境下使用 章 环境下使用 13.1 Notebook操作基础 操作基础 13.2 单元的使用 13.3 输出格式控制
13.1 Notebook操作基础 操作基础 13.1.1 Notebook的安装 的安装 首先安装Word 2002,然后启动 首先安装 ,然后启动MATLAB,在其命令 , 窗口输入: 窗口输入: notebook –setup 屏幕提示: 屏幕提示: 选择【 】 选择【3】 此时,用户根据所用Word版本,在最后一行提示后面 版本, 此时,用户根据所用 版本 输入对应序号,并按回车键。于是MATLAB会自动 输入对应序号,并按回车键。于是 会自动 寻找winword.exe的安装路径,并在该路径下寻找模 的安装路径, 寻找 的安装路径 板文件normal.dot。如果找到了,则出现提示: 板文件 。如果找到了,则出现提示: Notebook setup is complete. 表示Notebook安装结束。 安装结束。 表示 安装结束
13.2.3 单元组 Notebook允许把多行 允许把多行MATLAB命令当作义个整体运行。 命令当作义个整体运行。 允许把多行 命令当作义个整体运行 把多行输入单元或自初始化单元称为单元组。 把多行输入单元或自初始化单元称为单元组。 定义单元组的方法如下: 定义单元组的方法如下: (1) 对输入的多行文本型 对输入的多行文本型MATLAB命令,用鼠标把它们 命令, 命令 同时选中,然后在Notebook菜单中选择 菜单中选择Define Input 同时选中,然后在 菜单中选择 Cell或Define AutoInit Cell命令,便生成输入单元组 命令, 或 命令 或自初始化单元组。 或自初始化单元组。 (2) 对输入的多行文本型 对输入的多行文本型MATLAB命令,用鼠标把它们 命令, 命令 同时选中,然后在Notebook菜单中选择 菜单中选择Evaluate Cell 同时选中,然后在 菜单中选择 或按组合键Ctrl+Enter,于是单元组被定义并执行。 或按组合键 ,于是单元组被定义并执行。
输入单元定义与执行同时进行。 例13-2 输入单元定义与执行同时进行。 在英文状态下,以文本方式键入命令, 在英文状态下,以文本方式键入命令,然后选中命 令并按Ctrl+Enter键,则得到输入、输出单元。 令并按 键 则得到输入、输出单元。 x=1:5,y=sin(x),z=y.^2,a=[x;y;z;x.^y;x./z],inv(a)
x=linspace(0,2*pi,50) [x,y,z]=cylinder(sin(x)+1); surf(10.*x,10.*y,10.*z); a=eye(4)
13.2.4 计算区
定义计算区的方法是:先选定包含普通Word文本 文本、 定义计算区的方法是:先选定包含普通Word文本、输 入单元和输出单元的一个连续区,然后选择Notebook菜单 入单元和输出单元的一个连续区,然后选择Notebook菜单 中的Define Calc Zone命令。 命令。 中的 命令 一旦计算区被定义后,不管光标在计算区的什么位置, 一旦计算区被定义后,不管光标在计算区的什么位置, 只要选择Notebook菜单中的 菜单中的Evaluate Calc Zone命令即可执 只要选择 菜单中的 命令即可执 行计算区中的全部输入单元, 行计算区中的全部输入单元,且在每个输入单元后面以输 出单元形式给出相应的计算结果。 出单元形式给出相应的计算结果。
13.2.5 单元的其他操作 1.单元的循环执行 . 利用N执行。 命令可实现单元的循环执行。 利用 菜单中的 命令可实现单元的循环执行 使用单元的循环执行产生图13-2. 例13-5 使用单元的循环执行产生图 (1)运行以下命令: )运行以下命令:
13.3.2 图形输出控制 1.图形镶嵌的控制 .
2.曲面图色彩控制 .
3.图形背景色的控制 .
在Matlab 里复制代码到word产生中文乱码的恢复方法
在Matlab 里复制代码到word产生中文乱码的恢复方法在Matlab下复制代码到word下,因西文字体缺失中文字符(尽管matlab里可以正常看到中文),其中的中文注释复制到word文件后会变成字母型乱码,如下所示:Word 界面下中文注释乱码面对这类乱码,如何解救?根据发现的时间不同,这里提供两个方法:1)复制时产生在matlab的界面是这样的:Matlab 界面复制到word后,是这样的Word 界面在复制的文字最后,有一个这样的图标:,用鼠标点击它,或者按Ctrl键,便弹出:,选择,中文便不会再乱码,如下图所示:这样虽失去了原有格式,但中文不再乱码了。
如果你不嫌麻烦,可以在乱码的基础上,对乱码一个一个手动更改,这样就不会变更格式,但太麻烦了,不是么?2)已经保存的word不小心保存了乱码文件,或者网上下载的word就包含前面所说的乱码。
在找不到原代码(m文件等)的情况下,对于word下已经形成的中文乱码,如何修复成中文?这里有一个办法:安装Ultra-Edit ANSI和简体中文,如下图所示。
(此编码是windows下matlab命令框和m文件使用的编码;若是linux 下的matlab,则是UTF-8。
这里只针对windows下的matlab。
)txt格式文件,编码选择ANSI/ASCII,然后保存它。
然后在word 将含乱码的m 文件代码复制到上图空的sample.txt (或你设定的名字),保存它,这时在Ultra-Edit 内看到的乱码和word 上看到的是一样的,表明乱码对应的编码信息没有被破坏。
这时,就可以关闭Ultra-Edit ,以windows 默认的记事本(简体中文状态或支持简体中文的条件下),看到的就不是乱码而是中文注释了。
如果要保留word 里原来含乱码的matlab 代码的格式,可将里面的注释乱码一个一个换成相应记事本txt 里的中文注释就可以了。
如果觉得这样麻烦,可以将全部代码替换成记事本txt 中的字符,这样可能不再保留原有格式。
MATLAB外部接口
在如下图所示的对话框中输入 “MATLABinit”,单击【执行】按钮后即 可启动Excel link,并同时启动MATLAB。
3.Excel link的终止
当终止 Excel 的时候, Excel link 和 MATLAB会被同时终止。
如果需要在Excel环境中终止MATLAB和
Excel link的运行,则在工作表单元中输
2 编 译 器
2.1 编译器概述 2.2 编译器的安装和配置 2.3 编译器的使用
MATLAB编译器是指将M文件作为 其输入,同时生成独立的可执行文件 或相关软件组件的程序,它可以由命 令mcc调出。
2.1 编译器概述
MATLAB编译器4.0版本采用了MATLAB
Component Runtime(MCR)技术。 MCR提供了对MATLAB语言的完全支 持。
入“=MLClose()”即可,如下图所示。 当 需要重新启动Excel link和MATLAB时,
可以使用MATLABinit命令。
4.Excel link使用时需要注意的 几个问题
Excel link函数名对字母的大小写不作区
ቤተ መጻሕፍቲ ባይዱ
分,而MATLAB函数名是区分大小写的。
Excel工作表等式通常以“+”或“=” 作为起 始标记。
情况:代码以命令clear开始;重新启动 计算机后,再执行M-book文档中的程 序;将M-book文档的代码拷贝到M文 件,再到MATLAB的命令窗口执行。
M-book文档的代码运行速度要比在
MATLAB命令窗口中执行慢很多。
当编辑科技论文或其他文档时,最后可将
细胞转换为普通文本。
可使用Notebook菜单中的【Bring
(完整word版)用matlab实现DFTFFT
用matlab实现DFT FFT目录实验目的 (2)实验内容 (2)1.用MATLAB实现DFT (2)2.用MATLAB实现FFT,分析有限离散序列的FFT (3)3.通过分别计算时间,得出DFT与FFT的算法差异 (7)实验原理 (8)1. 离散傅里叶变换的快速算法FFT (8)2. FFT提高运算速度的原理 (9)3. 理论分析DFT与FFT算法差异 (11)实验步骤 (12)实验结果 (13)实验分析 (27)实验结论 (33)实验体会 (33)实验目的1.通过研究DFT,FFT性质,用语言实现DFT, FFT。
不使用MATLAB现有的FFT函数,自己编写具体算法。
2.掌握FFT基2时间抽选法,理解其提高减少乘法运算次数提高运算速度的原理。
3.设计实验,得出DFT和FFT算法差异的证明,如复杂度等(精度、不同长度的序列等)。
实验内容1. 用MATLAB实现DFTN点序列x(n) 的DFT为:DFT的矩阵为:根据DFT公式与矩阵展开,通过MATLAB实现DFT:2.用Matlab实现FFT编程思想及程序框图:●原位计算因为DIT-FFT与DIF-FFT的算法类似,这里我们以DIT-FFT为例。
N=2M点的FFT共进行M级运算,且每一级都由N/2个蝶形运算组成,后一级的节点数据由前一级同处一条水平线位置的节点数据产生,所以我们同样可以将后一级的节点数据储存到前一级的节点中,这样的方法叫做原位计算,它大大节省了内存资源,降低了成本,简化了运算。
●序列的倒序无论是进行DIT-FFT还是DIF-FFT都需要进行倒序,包括输入倒序与输出倒序,以一定的方式将数组进行重新排列。
倒序的方法:首先由于N=2M,我们就可以用M位二进制数来表示节点的顺序,并且按照奇偶时域抽取。
然后,如图1所示,第一次按最低位n0的0、1值分解为奇偶组,第二次按次低位n1的0、1值分解为奇偶组,以此类推。
最后,所得二进制数所对应的十进制数即为序列倒序后产生的序列。
基于Matlab在Word中插入函数图形
p a h c i r a e n Ma a . t b i f l o n t n n tl te s f a ema a n sald i r ” b o . o” r p i Wo d b s d o d b Ma l l f u c i .i s l h ot r t b a d i t l nwo a M- o k d t n a Su f o a w l n e d s
l s r h u to g a h c n W o d b s d o M a l b n e tt e f nc i n r p i si r a e n ta
YANG Jay i—i
( p l dI o ai eho g eat etI tu eh l yJ m s U i rt,i s 14 0 ,hn ) A pi n r t nTc nl yD p r n, si t o c no ,a ui nv sy J mui 50 7 C i e fm o o m n t e fT o g i ei a a
Ab t a t n od r t n e tt e ma h ma ia u c in i g s g a h c i W 0 d i n e s t se e o ms smp e sr c :I r e o i s r h t e t lf n t ma e r p i n c o r , e d o ma t r a f w fr i l , t p w ru d b d a n o o e f lMa a rwi g c mma d f n t n n u ci s o i p p rg v u to fi s ri g t e mah ma ia u c in i g s s a e a e o ta meh d o n e t h te t l f n t ma e n c o
matlab基础与应用教程课件第11章
y=fscanf(fid,'%5d',[10,10]);
A=fscanf(fid,'%s', [4]);
C=fscanf(fid,'%g %g',[2 inf]);
〔2〕fprintf函数 fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为
【例11.3】假定文件textdemo.txt中有以下格式的数据:
Name English Chinese Mathmatics
Wang
99
98
100
Li
98
89
70
......
此文件第一行为标题行,第2~5行的第1列为字符型,后3列为整型。从 该文件中将前3个数据读入到grades的命令如下:
fid = fopen('textdemo.txt', 'r');
fid=fopen('aaa.dat','w');
〔3〕调用MATLAB函数进展运算
11.2 MATLAB数据接口
MATLAB提供了多种不同层次的数据输入/输出函数。 MATLAB提供多种方法支持将磁盘文件和剪贴板中的数据导入到 MATLAB的工作区,最简单的方法是使用数据导入向导〔可通过选择 “File〞菜单中的“Import data〞命令或在命令窗口执行命令“uiimport 〞来激活它〕,而在M文件中那么可以使用MATLAB输入/输出函数。
〔4〕textscan函数
有格式文件可以使用文本输入函数textscan读取数据。textscan函数调用 格式为
C=textscan(fid, fmt, N , param, value)
Notebook 的使用在word环境下使用matlab
定义输入细胞(Define Input Cell) 用鼠标选中(点亮)文本内容,而后
选择Notebook|Define Input Cell 按下组合键[Alt+D]
那么,“点亮”部分就被激活成输入细 胞, 文字颜色将呈现为绿色。 但它并不进行运算,不会输出任何结果。
输入细胞的执行(Evaluate Cell)
Notebook的安装
在已安装有word的前提下,打开MATLAB,在其 指令窗中输入:
notebook(‘-setup’)
配置过程将自动进行,如果指令窗中出现如下 信息,就表示配置成功,notebook安装完毕。
Notebook setup is complete.
Notebook的启动
从word下创建新的M-book文档
选中文本内容后, 选择Notebook|Evaluate Cell 按下组合键[Ctrl+Enter] 输入细胞所含指令就被送进MATLAB运 行,并在该输入细胞的下方嵌入计算结果 (数据或图形)。这就是输出细胞,用蓝 色表示。
说明:
以普通文本形式输入的细胞必须是MATLAB指令 标点符号必须是在英文状态下输入。
M-book模板的基本操作
凡参与word和MATLAB之间交换信息的部 分,就称为“细胞(群)(Cells or Cell group)。” “输入细胞(Input cells)”:由M-book送向 MATLAB的指令; “输出细胞(Output cells)”:由MATLAB 返回M-book的计算结果; 所有操作均可通过{notebook}下拉菜单进行。 本课件相关资料来源于 /pifu/hblc/
影响所用输入细胞运行后的绘图输出。 在默认情况下, “镶嵌选项” {Embed Figures in M-book} 处于“勾选”状态。若选择“不 勾”,那 么在M-book 文档中,将肯定没有输出图形。
Matlab往Word里面插入图片范例代码
function ceshi_Word%设定测试Word文件名和路径filespec_user=[pwd '\测试.doc'];%判断Word是否已经打开,若已打开,就在打开的Word中进行操作,%否则就打开WordtryWord = actxGetRunningServer('Word.Application');catchWord = actxserver('Word.Application');end;%设置Word属性为可见set(Word, 'Visible', 1);%返回Word文件句柄documents = Word.Documents;%若测试文件存在,打开该测试文件,否则,新建一个文件,并保存,文件名为测试.doc if exist(filespec_user,'file');document = invoke(documents,'Open',filespec_user);elsedocument = invoke(documents, 'Add');document.SaveAs(filespec_user);endcontent = document.Content;selection = Word.Selection;paragraphformat = selection.ParagraphFormat;%页面设置(上下左右边距)document.PageSetup.TopMargin = 60;document.PageSetup.BottomMargin = 45;document.PageSetup.LeftMargin = 45;document.PageSetup.RightMargin = 45;%设定内容起始位置和标题set(content, 'Start',0);title='测试文件';set(content, 'Text',title);set(paragraphformat, 'Alignment','wdAlignParagraphCenter'); % 居中% set(paragraphformat, 'Alignment','wdAlignParagraphLeft'); % 居左% set(paragraphformat, 'Alignment','wdAlignParagraphRight'); % 居右%设定标题字体格式rr=document.Range(0,10);rr.Font.Size=18; % 字体大小设置rr.Font.Bold=4; % 设置字体加粗%设定下面内容的起始位置(将光标放在最后边)end_of_doc = get(content,'end');set(selection,'Start',end_of_doc);%另起一段selection.TypeParagraph;%如果当前工作文档中有图形存在,通过循环将图形全部删除shape=document.Shapes;shape_count=shape.Count;if shape_count~=0;for i=1:shape_count;shape.Item(1).Delete;end;end;%随机产生标准正态分布随机数,画直方图,并设置图形属性zft=figure('units','normalized','position',...[0.280469 0.553385 0.428906 0.251302],'visible','off');set(gca,'position',[0.1 0.2 0.85 0.75]);data=normrnd(0,1,1000,1);hist(data);grid on;xlabel('考试成绩');ylabel('人数');%将图形复制到粘贴板hgexport(zft, '-clipboard');%将图形粘贴到当前文档里,并设置图形属性为浮于文字上方% selection.Range.PasteSpecial;%将图形粘贴到当前文档里,并设置图形属性为嵌入式selection.Range.Paste;% shape.Item(1).WrapFormat.Type=3;% shape.Item(1).ZOrder('msoBringInFrontOfText');%删除图形句柄delete(zft);。
Word与MATLAB的动态数据交换与应用
动启 动 。 也可 以在 wo r d默认 窗 口中打开 已有 的 M— b o o k文档 , 与打 开一般 的 Wo r d文 档没 什么两样 ; 另 一种
1 No t e b o o k的 安装 与启 动
1 . 1 No t e b o o k的 安装
No t e b o o k的 安装 有 两 种 方 法 : 一 种 是 在 Wi n d o ws上 分 别 安 装 Wo r d和 MATL AB , 然 后 启 动 MAT— L AB, 在 MAT I AB指令 窗 中运行 n o t e b o o k — s e t u p ( 注意 n o t e b o o k后 面有 一 空格 ) , 然后 根 据 系统 提示 选 择 Mi c r o s o f t Wo r d版本 , 经确认 后 , 系统会 自动 提示安 装成 功 ; 另 一种 方法是把 MAT I AB 6 p 5 n o t e b o o k k p e目 录下 的 M— b o o k . d o t 模 板 文 件 直 接 拷 贝 到. . \ P r o g r a m F i l e s \ Mi c r o s o f t Of f i c e \ Te mp l a t e s \ 2 0 5 2目录 下 即
是从 MAT I AB中启动 No t e b o o k 。在 MA TL A B指令 窗 中输 入 n o t e b o o k指令 , 该指 令启 动 No t e b o o k的格 式如下:
n o t e b o o k n o t e b o o k P a t h F i l e Na me
MATLAB的绘图函数功能应用详解及基本属性介绍Word版
MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.本章主要介绍2维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MA TLAB各种图形对象的方法.第一节图形窗口与坐标系一.图形窗口1.MA TLAB在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸.2.在MATLAB下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB通过管理图形窗口的句柄来管理图形窗口;3.当前窗口句柄可以由MA TLAB函数gcf获得;4.在任何时刻,只有唯一的一个窗口是当前的图形窗口(活跃窗口);figure(h)----将句柄为h的窗口设置为当前窗口;5.打开图形窗口的方法有三种:1)调用绘图函数时自动打开;2)用File---New---Figure新建;3)figure命令打开,close命令关闭.在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.6.窗口中的图形打印:用图形窗口的File菜单中的Print项.7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit菜单中选择Properties项,打开图形对象的参数设置窗口,可以设置对象的属性.二.坐标系1.一个图形必须有其定位系统,即坐标系;2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系;3.每个坐标系都有唯一的标识符,即句柄值;4.当前坐标系句柄可以由MATLAB函数gca获得;5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h为指定坐标系句柄值.6.一些有关坐标轴的函数:1)定义坐标范围:一般MATLAB自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax]) 来重新设定;292)坐标轴控制:MA TLAB的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on则显示坐标轴(缺省值).3)通常MATLAB的坐标系是长方形,长宽比例大约是4:3,为了得到一个正方形的坐标系可用:axis square4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例的坐标系,可用:axis equal第二节二维图形的绘制一. plot函数plot函数是最基本的绘图函数,其基本的调用格式为:1.plot(y)------绘制向量y对应于其元素序数的二维曲线图,如果y为复数向量, 则绘制虚部对于实部的二维曲线图.例:绘制单矢量曲线图.y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];plot(y)由于y矢量有10个元素,x坐标自动定义为[1 2 3 4 5 6 7 8 9 10].图形为: 1234567891024681012141618202.plot(x,y)------绘制由x,y所确定的曲线.1)x,y是两组向量,且它们的长度相等,则plot(x,y)可以直观地绘出以x为横坐标,y为纵坐标的图形.如:画正弦曲线:t=0:0.1:2*pi;y=sin(t);plot(t,y)2)当plot(x,y)中,x是向量,y是矩阵时,则绘制y矩阵中各行或列对应于30向量x的曲线.如果y阵中行的长度与x向量的长度相同,则以y的行数据作为一组绘图数据;如果y阵中列的长度与x向量的长度相同,则以y的列数据作为一组绘图数据;如果y阵中行,列均与x向量的长度相同,则以y的每列数据作为一组绘图数据.例:下面的程序可同时绘出三条曲线.MATLAB在绘制多条曲线时,会按照一定的规律自动变化每条曲线的的颜色.x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(2,:)=0.3*sin(x);plot(x,y)或者还可以这样用:x=0:pi/50:2*pi;y=[ sin(x); 0.6*sin(x); 0.3*sin(x)];plot(x,y)01234567-1-0.6-0.4-0.20.20.40.60.813) 如果x,y是同样大小的矩阵,则plot(x,y)绘出y中各列相应于x中各列的图形.例:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y(1,:)=sin(x(1,:));y(2,:)=0.6*sin(x(2,:));y(3,:)=0.3*sin(x(3,:));plot(x,y)x=x';y=y';figure31plot(x,y)在这个例子中,x------3x101,y------3x101,所以第一个plot按列画出101条曲线,每条3个点;而x'------101x3,y'------101x3,所以第二个plot按列画出3条曲线,每条101个点.012345678-1-0.8-0.6-0.4-0.20.20.40.60.81012345678-1-0.8-0.6-0.40.20.40.60.813.多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的plot格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MA TLAB在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项选项意义选项意义'r' 红色'm' 粉红'g' 绿色'c' 青色32'b' 兰色'w' 白色'y' 黄色'k' 黑色各种线型属性选项选项意义选项意义'-' 实线'--' 虚线':' 点线'-.' 点划线各种标记点属性选项选项意义选项意义'.' 用点号绘制各数据点'^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点'>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点'<' 用左三角绘制各数据点's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamond用菱形绘制各数据点'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的'+'号绘制曲线.注意:1)表示属性的符号必须放在同一个字符串中;2)可同时指定2~3个属性;3)与先后顺序无关;4)指定的属性中,同一种属性不能有两个以上.例:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r',t,y2, ':g',t,y3, '*b')该程序还可以按下面的方式写:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r')hold onplot(t,y2, ':g')plot(t,y3, '*b')hold off注:在MA TLAB中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了hold on后,可以保持坐标系中已绘出的图形.3301234567-1-0.8-0.6-0.4-0.20.20.40.60.81图(a)还可以进一步设置包括线的宽度(LineWidth),标记点的边缘颜色(MarkerEdgeColor),填充颜色(MarkerFaceColor)及标记点的大小(MarkerSize) 等其它绘图属性.例:设置绘图线的线型,颜色,宽度,标记点的颜色及大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWidth',2,... %设置线的宽度为2'MarkerEdgeColor','k',... %设置标记点边缘颜色为黑色'MarkerFaceColor','y',... %设置标记点填充颜色为黄色'MarkerSize',10) %设置标记点的尺寸为10绘出图形如下:00.511.522.533.5-0.5-0.4-0.3-0.2-0.10.10.20.30.40.5344.双Y轴绘图:plotyy()函数.其调用格式为:plotyy(x1,y1,x2,y2)------绘制由x1,y1和x2,y2确定的两组曲线,其中x1,y1的坐标轴在图形窗口的左侧,x2,y2的坐标轴在图形窗口的右侧.Plotyy(x1,y1,x2,y2, 'function1','function2')------功能同上,function是指那些绘图函数如:plot,semilogx,loglog等.例如:在一个图形窗口中绘制双Y轴曲线.x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')图形如下:0246810120.511.50246810120.511.5stem:绘制stem形式的曲线(上端带圈的竖线).绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y轴坐标对应的是plot形式的曲线,右边的Y坐标对应的是stem形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy和loglog函数.1)semilogx( )------绘制以X轴为对数坐标轴的对数坐标图.其调用格式为:semilogx(x,y,'属性选项')其中属性选项同plot函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2)semilogy( )------绘制以Y轴为对数坐标轴的对数坐标图.其调用格式为:semilogy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.353)loglog( )------ 绘制X,Y轴均为对数坐标轴的图形.其调用格式为:loglog(x,y,'属性选项')该函数分别对横,纵坐标都进行对数变换.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplot(221), semilogx(x,y);subplot(222), semilogy(x,y);subplot(223), loglog(x,y);4)MATLAB还提供了一个实用的函数:logspace( )函数,可按对数等间距地分布来产生一个向量,其调用格式为:x=logspace(x1,x2,n)这里,x1表示向量的起点;x2表示向量的终点;n表示需要产生向量点的个数(一般可以不给出,采用默认值50).在控制系统分析中一般采用这种方法来构成频率向量w.关于它的应用后面还要讲到.三.极坐标图的绘制函数:绘极坐标图可用polar( )函数.其调用格式如下:polar(theta, rho,'属性选项')------theta:角度向量,rho:幅值向量,属性内容与plot函数基本一致.例如:极坐标模型为:3145/)/)cos((+ =θρ, ],[πθ80∈则绘出极坐标图的程序为:theta=0:0.1:8*pi;p=cos((5*theta)/4)+1/3;polar(theta,p)0.511.53021060240902701203001503301800四.绘制多个子图:subplot( )函数MATLAB允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm个部分.分割图形窗口用subplot函数来实现,其调用格式为:subplot(n,m,k)或subplot(nmk)------n,m分别表示将窗口分割的行数和列数, 36k表示要画图部分的代号,表示第几个图形,nmk三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4个部分,可以这样写:subplot(2,2,1),plot(……)subplot(2,2,2),……subplot(2,2,3),……subplot(2,2,4),……221 222223 224注:subplot函数没有画图功能,只是将窗口分割.第三节图形的修饰与标注MATLAB提供了一些特殊的函数修饰画出的图形,这些函数如下:1)坐标轴的标题:title函数其调用格式为:title('字符串')------字符串可以写中文如:title('My own plot')2)坐标轴的说明:xlabel和ylabel函数格式:xlabel('字符串')ylabel('字符串')如:xlabel('This is my X axis')ylabel('My Y axis')3)图形说明文字:text和gtext函数A.text函数:按指定位置在坐标系中写出说明文字.格式为:text(x1, y1, '字符串', '选项')x1,y1为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1的坐标单位,如没有选项,则x1,y1的坐标单位和图中一致;如选项为'sc',则x1,y1表示规范化窗口的相对坐标,其范围为0到1.(1,1)规范化窗口(0,0)37如:text(1,2, '正弦曲线')B.gtext函数:按照鼠标点按位置写出说明文字.格式为:gtext('字符串')当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线, 移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext参数中的字符串就标注在该位置上.4)给图形加网格:grid函数在调用时直接写grid即可.上面的函数的应用实例:例:在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.t=0:pi/100:2*pi;y=sin(t);plot(t,y),grid,axis([0 2*pi -1 1])xlabel('0 leq itt rm leq pi','FontSize',16)ylabel('sin(t)','FontSize',20)title('正弦函数图形','FontName','隶书' ,'FontSize',20)text(pi,sin(pi),'leftarrowsin(t)=0','FontSize',16)text(3*pi/4,sin(3*pi/4),'leftarrowsin(t)=0.707', 'FontSize',16)text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707rightarrow',...'FontSize',16,'HorizontalAlignment','right')画出的图形为:0246-1-0.50.510 ≤ t ≤ πsin(t)正弦函数图形←sin(t)=0←sin(t)=0.707sin(t)=-0.707→5)在图形中添加图例框:legend函数其调用格式为:A.legend('字符串1', '字符串2', ……)------以字符串1,字符串2……作38为图形标注的图例.B.legend('字符串1', '字符串2', ……, pos)------pos指定图例框显示的位置. 图例框被预定了6个显示位置:0------取最佳位置;1------右上角(缺省值);2------左上角;3------左下角;4------右下角;-1------图的右侧.例:在图形中添加图例.x=0:pi/10:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,'-o',x,y3,'-*')legend('曲线1','曲线2','曲线3')绘出图形如下:02468-1-0.50.51曲线1曲线2曲线36)用鼠标点选屏幕上的点:ginput函数格式为:[x, y, button]=ginput(n)其中:n为所选择点的个数;x,y均为向量,x为所选n个点的横坐标;y为所选n个点的纵坐标.button为n维向量,是所选n个点所对应的鼠标键的标号:1------左键;2------中键;3------右键.可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.39第四节MA TLAB下图形对象的修改MATLAB图形对象是指图形系统中最基本,最底层的单元,这些对象包括: 屏幕(Root),图形窗口(Figures),坐标轴(Axes),控件(Uicontrol),菜单(Uimenu), 线(Lines),块(Patches),面(Surface),图像(Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:RootFiguresAxes Uicontrol Uimenu Uicontextmenu (对象菜单)Images Line Patch Surface Text对各种图形对象进行修改和控制,要使用MATLAB的图形对象句柄(Handle).在MA TLAB中,每个图形对象创立时,就被赋予了唯一的标识,这个标识就是该对象的句柄.句柄的值可以是一个数,也可以是一个矢量.如每个计算机的根对象只有一个,它的句柄总是0,图形窗口的句柄总是正整数,它标识了图形窗口的序号等.利用句柄可以操纵一个已经存在的图形对象的属性,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的.一.对图形对象的修改可以用下面函数:1)set函数:用于设置句柄所指的图形对象的属性.Set函数的格式为:set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……)例:h=plot(x,y)set(h, 'Color', [1,0,0])------将句柄所指曲线的颜色设为红色.2)get函数:获取指定句柄的图形对象指定属性的当前值.格式为:get(句柄, '属性名')如: get(gca, 'Xcolor')------获得X轴的当前颜色属性值.执行后可返回X轴的当前颜色属性值[0,0,0](黑色).3)如果没有设置句柄,则可以使用下列函数获得:gcf:获得当前图形窗口的句柄;gca:获得当前坐标轴对象的句柄;gco:获得当前对象的句柄.如:A.要对图形窗口的底色进行修改,可用:set(gcf, 'Color', [1,1,1])------将图形窗口底色设为白色B.要把当前X轴的颜色改为绿色,可用:set(gca, 'Xcolor', [0,1,0])40C.还可对坐标轴的显示刻度进行定义:t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,'xtick',[-pi:pi/2:pi],'xticklabel',['-pi','-pi/2','0','pi/2','pi'])-pi-pi/20pi/2pi-1-0.50.51本例中用'xtick'属性设置x轴刻度的位置(从-pi~pi,间隔pi/2,共设置5个点),用'xticklabel'来指定刻度的值,由于通常习惯于用角度度量三角函数,因此重新设置['-pi','-pi/2','0','pi/2','pi']5个刻度值.二.一些常用的属性如下:1)Box属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框),'off'(无方框);2)'ColorOrder'属性:设置多条曲线的颜色顺序,默认值为:[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]黄色粉色天蓝红色绿色兰色颜色向量还有:[1 1 1]------白色;[0 0 0]------黑色.3)坐标轴方向属性:'Xdir','Ydir','Zdir',其选项为:'normal'------正常'reverse'------反向4)坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色,值为颜色向量'LineWidth'------ 轴的线宽,值为数字'Xgrid','Ygrid','Zgrid'------坐标轴上是否加网格,值为'on'和'off'.5)坐标轴的标尺属性:'Xtick','Ytick','Ztick'------ 标度的位置,值为向量'Xticklabel','Yticklabel','Zticklabel'------ 轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.5)字体设置属性:'FontAngle'------ 设置字体角度,选项为:41'normal'------ 正常;'italic'------ 斜体;'oblique'------ 倾斜;'FontName'------ 字体名称;'FontSize'------ 字号大小'FontWeight'------ 字体的轻重,选项为:'light','normal','bold'友情提示:方案范本是经验性极强的领域,本范文无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用。
(完整word版)使用matlab绘制眼图
close all;
alpha=0.2;
Ts=5*1e-2;
Fs=1e3;
Rs=50;
M=2;
Num=100;
Samp_rate=Fs/Rs;
Eye_num=2;
NRZ=2*randint(1,Num,M)-M+1;
figure(1);
stem(NRZ);
由于理想的低通滤波器不容易实现,而且时域波形的拖尾衰减太慢,因此在得不到严格定时时,码间干扰就可能较大。在一般情况下,只要满足:
(3-4)
基带信号就可实现无码间干扰传输。这种滤波器克服了拖尾太慢的问题。
从实际的滤波器的实现来考虑,采用具有升余弦频谱特性 时是适宜的。
(3-5)
这里 称为滚降系数, 。
figure(2);
subplot(2,1,1);
plot(ht);
ylabel('冲激响应');
title('升余弦滚降系统冲激响应');
st=conv(Samp_data,ht)/(Fs*Ts);
subplot(2,1,2);
plot(st);
ylabel('信号幅度');
title('经过升余弦滚降系统后的码元');
(3) Rs=50 Ts=20 M=2 a=0.2
close all;
alpha=0.2;
Ts=2*1e-2;
Fs=1e3;
Rs=50;
M=2;
Num=100;
Samp_rate=Fs/Rs;
Eye_num=2;
NRZ=2*randint(1,Num,M)-M+1;
