文档库 最新最全的文档下载
当前位置:文档库 › MATLAB学习笔记

MATLAB学习笔记

MATLAB学习笔记
MATLAB学习笔记

MATLAB学习笔记

一.符号计算

1.MATLAB符号计算的基本用途及意义

定义:用一系列恒等式,数学定理,通过演绎和推理,力求获得精准的解析结果。

通俗理解:1) matlab符号计算就是为了解决离散化数值计算所产生的精度误差问题,用符号计算可以产生精准符号数字,或16位,32位精度的近似符号数字。例如解决以下一类问题:

其中3^(1/2)/2是由数学推理等解析出的精确的符号数字,而0.866025403784439则是由离散化数值计算得出近似的双精度浮点数。

2),利用符号计算可以进行对数学公式及某些代数方程的求解。

【例】用符号计算验证三角等式sin cos cos sin sin()

??????

-=-。

121212

syms fai1 fai2

y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))

y =

sin(fai1-fai2)

2. 符号计算基本命令

3. 对符号变量的限定性假设

4. 符号矩阵的相关命令

5. 极限,导数和积分的符号计算

6. 符号计算的可视化

二.数组运算及数组化编程1.数组的创建

2.数组操作函数

3.二维数组元素的寻访(1)按址寻访

(2)按条件寻访

4.数组运算

5.数组化编程

(1)“标量循环+条件分支”法

(2)数组混合运算

提示:利用数组创建分段函数,借助meshgrid 创建[X,Y]格点。

三.数值计算

在MATLAB数值计算中,没有专门的求极限和求导命令,但具有求差分的命令:dx=diff(x) 求差分

FX=gradient(F) 求一元函数梯度

[FX,FY]=gradient(F) 求二元函数梯度

运用数值计算求极限时,应确保经过理论验证,否则不能借助数值法求极限。

sx=sum(X) 沿列方向求和

scs=cumsum(X) 沿列方向累计求和

St=trapz(x,y) 采用梯形法沿列方向求y关于x的积分

Sct=cumtrapz(x,y) 采用梯形法沿列方向求y关于x的累计积分

q=integral(fun,xmin,xmax) 求fun函数在此区间精确积分

四. 数据的和函数的可视化(1)直角坐标系二维图形

(2)极坐标系二维图形

(3)直方图

(4)三维曲线

(5)三维着色曲面图

五. M文件和函数句柄

创建矩阵时进行空间预配可以提高运行速度。

采用数组化编程可以极大提高运行速度。

1.函数句柄的创建和观察

(1)创建句柄

hm=@magic %为magic函数创建函数句柄(2)类型判别

class(hm)

isa(hm,’function handle’)

ans=

function_handle

ans=

1

(3)借助functions观察内涵

ff=functions(hm)

ff =

function: 'magic'

type: 'simple'

file: 'F:\MATLAB\toolbox\matlab\elmat\magic.m'

(4)句柄调用方法之一

>> M1=hm(3)

M1 =

8 1 6

3 5 7

4 9 2

注意:创建函数句柄前,一定要确认原函数在当前视野内,否则创建的句柄是无效的。

2.例题 .

求级数1+0.2^1+0.2^2+…+0.2^1000000的值

(1)方法一:for循环

matlab信号与系统实验报告

实验一 基本信号的产生与运算 一、 实验目的 学习使用MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期方波等等。这些信号是信号处理的基础。 1、 利用MATLAB 产生下列连续信号并作图。 (1)51),1(2)(<<---=t t u t x (2)300),3 2sin()(3.0<<=-t t e t x t (3)1.01.0,3000cos 100cos )(<<-+=t t t t x (4)2000),8.0cos()1.0cos()(<<=t t t t x ππ 答:(1)、 >> t=-1:0.02:5; >> x=(t>1); >> plot(t,-2*x); >> axis([-1,5,-3,1]); >> title('杨婕婕 朱艺星'); >> xlabel('x(t)=-2u(t-1)'); (2)、 >> t=0:0.02:30; >> x=exp(-0.3*t).*sin(2/3*t); >> plot(t,x);

>> title('杨婕婕朱艺星'); >> xlabel('x(t)=exp(-0.3*t).*sin(2/3*t)'); 因为原函数在t=15后x(t)取值接近于零,所以将横坐标改成0到15,看得更清晰 axis([0,15,-0.2,0.6]); (3)>> t=-0.1:0.01:0.1;x=cos(100*t)+cos(3000*t);plot(t,x); >> title('杨婕婕朱艺星'); >>xlabel('x=cos(100*t)+cos(3000*t)'); 因为t的间隔取太大,以至于函数不够准确,缩小t的间隔: t=-0.1:0.002:0.2;x=cos(100*t)+cos(3000*t); plot(t,x);title('杨婕婕') >> t=-0.1:0.0001:0.1; x=cos(100*t)+cos(3000*t); >> plot(t,x);title('杨婕婕朱艺星'); >> xlabel('x=cos(100*t)+cos(3000*t)');

matlab学习笔记

1、函数eval的作用:对输入的表达式重新输出一减少系统的表达错误。 2、Global 的作用:同时用于主函数和子函数中,定义变量,使主子函数中数据共享,节 省运行时间。并在主函数中进行赋值。 4、化简式子函数:simple(f) 5, plot成了图,保存成了.fig的文件。现在没有了源码,想把数据导出怎么办? 下面地址给出了一个例子 具体的办法是: open(fnam); % fnam是文件名 lh=findall(gca,'type','line'); % 从当前图(gca)中取出曲线的handle xc=get(lh,'xdata'); % 取出x轴数据,注意,这个x和y是以cell的数据结构保存的 yc=get(lh,'ydata'); % 取出y轴数据 x=xc{1};从cell转换成矩阵,可以这样写 y=yc{1}; ----------------------------- % the data x=1:10; y=rand(size(x)); fnam='afig.fig'; % ...on display fh=figure; line(x,y); % ...and saved saveas(gcf,fnam); delete(fh); % the engine open(fnam); lh=findall(gca,'type','line'); xx=get(lh,'xdata'); yy=get(lh,'ydata'); % the result [isequal(x,xx) isequal(y,yy)]

各种数学公式的显示 积分公式: Title(‘s=\inty(t)dt’)--------一重积分 Title(‘s=\int\int y(t)dt’)-------二重积分 导数: Title(‘y{\prime}’)----------一次导数 Title(‘y{\prime\prime}’)------二次导数 数组生成: X=(0:0.1:1) x=linspace(fiest_value,last_value,number_of_value) X=logspace(fiest_value,last_value,number_of_value)……… Rand(n)生成均匀分布的随机数组,其元素值介于0~1之间; Randn(n)生成均值为0,方差为1的正态分布矩阵。 Randperm(n) 生成1到n的整数随机数组。 Magic(n) 魔方矩阵,其元素由1,2,3,…,n^2组成,其每行每列及两条对角线上的元素之和相等。 Vander(V) 范德蒙德矩阵,最后一列全为1,倒数第二列为给定列向量,其他各列是其后列与倒数第二列的点积。 Toeplitz(X,Y) 托普利兹矩阵,矩阵除第一行第一列为给定外,其他元素与其左上角元素相同。 Pascal(n) 帕斯卡矩阵,由杨辉三角行表组成的矩阵。 M函数文件开头只能是function fun=……

图论算法及其MATLAB程序代码

图论算法及其MATLAB 程序代码 求赋权图G =(V ,E ,F )中任意两点间的最短路的Warshall-Floyd 算法: 设A =(a ij )n ×n 为赋权图G =(V ,E ,F )的矩阵,当v i v j ∈E 时a ij =F (v i v j ),否则取a ii =0,a ij =+∞(i ≠j ),d ij 表示从v i 到v j 点的距离,r ij 表示从v i 到v j 点的最短路中一个点的编号. ①赋初值.对所有i ,j ,d ij =a ij ,r ij =j .k =1.转向② ②更新d ij ,r ij .对所有i ,j ,若d ik +d k j <d ij ,则令d ij =d ik +d k j ,r ij =k ,转向③. ③终止判断.若d ii <0,则存在一条含有顶点v i 的负回路,终止;或者k =n 终止;否则令k =k +1,转向②. 最短路线可由r ij 得到. 例1求图6-4中任意两点间的最短路. 解:用Warshall-Floyd 算法,MATLAB 程序代码如下: n=8;A=[0281Inf Inf Inf Inf 206Inf 1Inf Inf Inf 8607512Inf 1Inf 70Inf Inf 9Inf Inf 15Inf 03Inf 8 Inf Inf 1Inf 3046 Inf Inf 29Inf 403 Inf Inf Inf Inf 8630];%MATLAB 中,Inf 表示∞ D=A;%赋初值 for (i=1:n)for (j=1:n)R(i,j)=j;end ;end %赋路径初值 for (k=1:n)for (i=1:n)for (j=1:n)if (D(i,k)+D(k,j)

matlab中GUI设计

MATLAB的GUI 程序设计 Chapter 8: Design of MATLAB of GUI program GUI(Graphical User Interfaces):由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。 基本图形对象分为控件对象和用户界面菜单对象,简称控件和菜单。 一. 控件对象及属性(Object and its attributes of controller)) 1. GUI控件对象类型(The mode of controller object) 控件对象是事件响应的图形界面对象。当某一事件发生时,应用程序会做出响应并执行某些预定的功能子程序(Callback). 控件对象及其功能:(表7—1) 2. 控件对象的描述(Description of controller object) MATLAB中的控件大致可分为两种,一种为动作控件,鼠标点击这些控件时会产生相应的响应。一种为静态控件,是一种不产生响应的控件,如文本框等。

每种控件都有一些可以设置的参数,用于表现控件的外形、功能及效果,既属性。属性由两部分组成:属性名和属性值,它们必须是成对出现的。 (1)按钮(Push Buttons):执行某种预定的功能或操作; (2)开关按钮(Toggle Button):产生一个动作并指示一个二进制状态(开或关),当鼠点击它时按钮将下陷,并执行callback(回调函数)中指定的内容,再次点击,按钮复原,并再次执行callback 中的内容; (3)单选框(Radio Button):单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项; (4)复选框(Check Boxes):单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项; (5)文本编辑器(Editable Texts):用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作; (6)静态文本框(Static Texts):仅仅用于显示单行的说明文字; (7)滚动条(Slider):可输入指定范围的数量值;

信号(MATLAB)实验指导书

《信号与系统》实验指导书 张建奇骆崇编写 浙江工业大学之江学院信息工程分院 2012年2月

目录 实验一MATLAB的基本使用 (1) 一、实验目的 (1) 二、实验原理 (1) 三、实验内容与要求 (8) 四、实验报告 (9) 实验二时域波形的MATLAB实现 (10) 一、实验目的 (10) 二、预习要求 (10) 三、实验原理 (10) 四、实验内容与要求 (18) 五、实验报告 (19) 实验三用MATLAB对系统时域分析 (20) 一、实验目的 (20) 二、预习要求 (20) 三、实验原理 (20) 四、实验内容与要求 (29)

实验一MATLAB的基本使用 一、实验目的 1、了解和掌握MATLAB的基本操作 2、了解MATLAB的库函数 3、会用MATLAB进行简单的操作。 二、实验原理 1、界面操作 MATLAB是“MATrix LABoratory”的缩写(矩阵实验室),它是由美国Mathworks公司于1984年正式推出的一种科学计算软件,由于其强大的功能,在欧美的一些大学里MATLAB已经成为许多诸如数字信号处理、自动控制理论等高级教程的主要工具软件,同时也成为理工科学生,必须掌握的一项基本技能。 当需要运行程序时,只需选择桌面上(或开始)中的MATLAB6.5应用程序图标即可 通常情况下,MATLAB的工作环境主要由一下几个窗口组成: 命令窗口(Command Window)

工作区间浏览器(Workspace) 历史命令窗口(Command History) 图形窗口(Figure) 文本编辑窗口(Editor) 当前路径窗口(Current Directory) MATLAB的命令窗与命令操作 当用户使用命令窗口进行工作时,在命令窗口中可以直接输入相应的命令,系统将自动显示信息。 例如在命令输入提示符“>>”后输入指令: >>t=[1,2,3;4,5,6;7,8,9]; 按回车键(Enter)后,系统即可完成对变量t的赋值。 MATALB提供了非常方便的在线帮助命令(help),它可提供各个函数的用法指南,包括格式、参数说明、注意事项及相关函数等内容。 2、图形窗 MATLAB图形窗(Figure)主要用于显示用户所绘制的图形。 通常,只要执行了任意一种绘图命令,图形窗就会自动产生。

实验1 用MATLAB进行信号频谱分析(推荐文档)

实验1 用MATLAB 进行信号频谱分析 一、实验目的 ㈠ 初步掌握MATLAB 产生常用离散时间信号的编程方法。 ㈡ 学习编写简单的FFT 算法程序,对离散信号进行幅频谱分析。 ㈢ 观察离散时间信号频谱的特点。 二、实验原理 ㈠ 常用的离散时间信号 在 MATLAB 语言主要是研究离散信号的。常用的离散信号有: 1.单位取样序列 ???≠==000 1)(n n n δ 2.单位阶跃序列 ?? ?<≥=0 01 )(n n n u 3.实指数序列 R a n a n x n ∈?=;)( 4.复指数序列 n e n x n j ?=+)(0)(ωσ 5.正(余)弦序列 )c o s ()(0θω+=n n x n ? 6.周期序列 n N n x n x ?+=)()( ㈡ 离散信号的产生 离散信号的图形显示使用stem 指令。 在 MATLAB 中的信号处理工具箱中,主要提供的信号是离散信号。

由于MATLAB 对下标的约定为从1开始递增,例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,X(3)=3… 因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如 n=[-3,-2,-1,0,l ,2,3,4,5]; x=[1,-l ,3,2,0,4,5,2,1]; 这表示了一个含9个采样点的矢量:X(n)={x(-3),x(-2),x(-1),x(0),x(1),x(2),x(3),x(4),x(5)}。 1.单位取样序列 ?? ?≠==δ0 001)(n n n 这一函数实现的方法有二: 方法一:可利用MATLAB 的zeros 函数。 x=zeros(1,N); %建立一个一行N 列的全零数组 x(1)=1; %对X (1)赋1 方法二:可借助于关系操作符实现 n=1:N; x=[n==1]; %n 等于1时逻辑关系式结果为真,x=1;n 不等于1时为假,x=0 如要产生 ?????≤<<=≤≤=-δ2 0210 100)(10)(n n n n n n n n n n n n 则可采用MATLAB 实现: n=n1:n2; x=[(n-n0)==0];%n=n0时逻辑关系式结果为真,x=1;n ≠n0时为

MATLAB学习笔记.

MATLAB学习笔记 一.符号计算 1.MATLAB符号计算的基本用途及意义 定义:用一系列恒等式,数学定理,通过演绎和推理,力求获得精准的解析结果。 通俗理解:1) matlab符号计算就是为了解决离散化数值计算所产生的精度误差问题,用符号计算可以产生精准符号数字,或16位,32位精度的近似符号数字。例如解决以下一类问题: 其中3^(1/2)/2是由数学推理等解析出的精确的符号数字,而0.866025403784439则是由离散化数值计算得出近似的双精度浮点数。 2),利用符号计算可以进行对数学公式及某些代数方程的求解。

【例】用符号计算验证三角等式sin cos cos sin sin() ?????? -=-。 121212 syms fai1 fai2 y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2)) y = sin(fai1-fai2) 2. 符号计算基本命令 3. 对符号变量的限定性假设

4. 符号矩阵的相关命令 5. 极限,导数和积分的符号计算

6. 符号计算的可视化 ezplot 用于符号函数画二维图形的简洁命令 ezplot3 画三维图形的简洁命令 vpa(x,n) 根据符号表达式x 显示n 位有效数字的数值型结果 二.数组运算及数组化编程 1.数组的创建 x=a: inc :b 线性等距行数组 x=linspace(a, b,n) x=logspace(a,b,n) 对数等距行数组 magic 产生魔方数组(二维) eye 产生单位数组(二维)

2.数组操作函数 3.二维数组元素的寻访(1)按址寻访

matlab信号与系统实验报告

实验一 基本信号的产生与运算 一、 实验目的 学习使用MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期方波等等。这些信号是信号处理的基础。 1、 利用MATLAB 产生下列连续信号并作图。 (1)51),1(2)(<<---=t t u t x (2)300),3 2 sin()(3.0<<=-t t e t x t (3)1.01.0,3000cos 100cos )(<<-+=t t t t x (4)2000),8.0cos()1.0cos()(<<=t t t t x ππ 答:(1)、 >> t=-1:0.02:5; >> x=(t>1); >> plot(t,-2*x); >> axis([-1,5,-3,1]); >> title('杨婕婕 朱艺星'); >> xlabel('x(t)=-2u(t-1)');

(2)、 >> t=0:0.02:30; >> x=exp(-0.3*t).*sin(2/3*t); >> plot(t,x); >> title('杨婕婕朱艺星'); >> xlabel('x(t)=exp(-0.3*t).*sin(2/3*t)');

因为原函数在t=15后x(t)取值接近于零,所以将横坐标改成0到15,看得更清晰 axis([0,15,-0.2,0.6]);

(3)>> t=-0.1:0.01:0.1;x=cos(100*t)+cos(3000*t);plot(t,x); >> title('杨婕婕朱艺星'); >>xlabel('x=cos(100*t)+cos(3000*t)'); 因为t的间隔取太大,以至于函数不够准确,缩小t的间隔:t=-0.1:0.002:0.2;x=cos(100*t)+cos(3000*t); plot(t,x);title('杨婕婕')

学习matlab心得体会

1.前言 2.matlab的一些特点 3.学习matlab心得体会 4.matlab的一些资源 1.前言 我接触Matlab的时间比较长了,最开始是在大学里面的数学实验课上了解了一些,学了些基础的命令,后来参加过一次数学建模,又自学了点。而后由于所学的专业是生命科学和环境相关的东西,用到matlab的机会不多,主要是一些功能用matlab实现起来不是很方便,而且手边有现成的软件可以做到,例如图像分析,还有DNA序列分析都有现成软件等。本以为不会与其有太多交集。我下决心学习matlab是在经历几件事情之后。当时,在做硕士论文时需要对电泳图片做微生物种群的多样性分析和相似性分析,当时手头的软件只能将电泳图转化为各个泳道的灰度和位置方面的数据,而不能对数据进行分析,而能进行这样分析的软件(Bionumerics)比较贵,只为了这个用几次而买显然很不划算。无奈之下,我查了些文献,了解计算的原理后便用比较熟悉的matlab编程解决这个问题,其实这个程序比较简单--DGGE中条带Shannon多样性指数的计算,在现在看来,根本不值一提,但是在当时自我感觉还是不错的,相当有成就感了。后来在课程(数值分析,微分方程数值解)中matlab经常用到,另外在帮师姐做管理方面的数学模型时用的比较多,便自学了相关方面的知识,主要是看书,自己编程还有上网交流,这时在百度上回答了很多matlab相关的问题,并成为百度matlab技术论坛的副团长,在emuch中蒙前计算模拟区区长cenwanglai 看重,聘为计算模拟版的版主。Matlab涉及的方面非常广,下面我就自己的理解谈下matlab 一些特点和我学习matlab的一点体会,希望能对大家有点帮助,有什么不对的地方,敬请指正! 2.matlab的一些特点 A.Matlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for 循环(包括while循环)嵌套了十几层,这不仅是暴殄天物(没有发挥matlab所长),还浪费了你宝贵的时间,就只见左下角一直busy。 B.友好的界面,易于操作,虽然matlab一打开总看到命令行窗口,其实matlab有很多

Matlab学习心得系列——002.Matlab编程思想——向量化编程

2.Matlab 编程思想——向量化编程 C 语言的基本元素是单数值(比如单变量或数组里的元素),再加上 其结构化的特点,决定了通常 C 语言程序大都充斥着大量罗嗦的单变量循环和判断语句(注 1)。 而 Matlab 是以向量、矩阵为基本元素的,所以要编写真正的 Matlab 程序必须抛弃【 C 语言那种“单数值、元素化”考虑问题】的思路,转以向量、矩阵为最小单位来考虑问题。也就是说, Matlab 的编程思想是——向量化编程,即面向向量或矩阵。 这样做的好处,至少有两个: (1)代码大大简化,易编程、清晰可读性强; 这样的代码才叫Matlab 代码,否则只能是不伦不类的代码:C 不 C,Matlab 不 Matlab. (2)执行效率也更高; 这是次要的,随着 Matlab 对循环机制的优化,速度差异已不再 那么明显,关键是( 1)

下面针对 Matlab 中常见的向量化处理问题方法,举例加以说明:(一)整体操作“大块数据” Matlab 为同型的数据块(向量或矩阵)的整体做运算提供了【点 运算】,这里我借用《线性代数》里的说法,矩阵行数、列数相同 称为同型矩阵, Matlab 里矩阵可能不止 2 维。 比如, A.*C 和 A./C 表示 A 与 C的对应位置的各元素做* 和 /运算得到与它们同型的一个新矩阵。 例1.物理实验利用测得的电压电流具体数据,验证欧姆定律R=U/I. 代码 1(C语言风格) U = [0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41]; I = [0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257, 0.308, 0.345]; L = length(U); S=0; for k = 1:L R(k) = U(k)/I(k); S = S + R(k); end R=S/L 运行结果: R = 30.5247

(图论)matlab模板程序

(图论)matlab模板程序

第一讲:图论模型 程序一:可达矩阵算法 %根据邻接矩阵A(有向图)求可达矩阵P(有向图) function P=dgraf(A) n=size(A,1); P=A; for i=2:n P=P+A^i; end P(P~=0)=1; %将不为0的元素变为1 P; 程序二:无向图关联矩阵和邻接矩阵互换算法F表示所给出的图的相应矩阵 W表示程序运行结束后的结果 f=0表示把邻接矩阵转换为关联矩阵 f=1表示把关联矩阵转换为邻接矩阵 %无向图的关联矩阵和邻接矩阵的相互转换 function W=incandadf(F,f) if f==0 %邻接矩阵转换为关联矩阵 m=sum(sum(F))/2; %计算图的边数 n=size(F,1); W=zeros(n,m); k=1; for i=1:n for j=i:n if F(i,j)~=0 W(i,k)=1; %给边的始点赋值为1 W(j,k)=1; %给边的终点赋值为1 k=k+1; end end end elseif f==1 %关联矩阵转换为邻接矩阵 m=size(F,2); n=size(F,1); W=zeros(n,n); for i=1:m a=find(F(:,i)~=0); W(a(1),a(2))=1; %存在边,则邻接矩阵的对应值为1 W(a(2),a(1))=1;

end else fprint('Please imput the right value of f'); end W; 程序三:有向图关联矩阵和邻接矩阵互换算法 %有向图的关联矩阵和邻接矩阵的转换 function W=mattransf(F,f) if f==0 %邻接矩阵转换为关联矩阵 m=sum(sum(F)); n=size(F,1); W=zeros(n,m); k=1; for i=1:n for j=i:n if F(i,j)~=0 %由i发出的边,有向边的始点 W(i,k)=1; %关联矩阵始点值为1 W(j,k)=-1; %关联矩阵终点值为-1 k=k+1; end end end elseif f==1 %关联矩阵转换为邻接矩阵 m=size(F,2); n=size(F,1); W=zeros(n,n); for i=1:m a=find(F(:,i)~=0); %有向边的两个顶点 if F(a(1),i)==1 W(a(1),a(2))=1; %有向边由a(1)指向a(2) else W(a(2),a(1))=1; %有向边由a(2)指向a(1) end end else fprint('Please imput the right value of f'); end W;

matlab学习心得体会(精选3篇)

matlab学习心得体会(精选3篇) matlab学习心得体会一:matlab学习心得matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 matlab学习心得体会二:matlab学习心得(463字) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab学习心得体会三:学习matlab的心得(817字) 这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。

基带信号眼图实验——matlab仿真

基带信号眼图实验——matlab 仿真

————————————————————————————————作者:————————————————————————————————日期: ?

数字基带信号的眼图实验——matla b仿真 一、实验目的 1、掌握无码间干扰传输的基本条件和原理,掌握基带升余弦滚降系统的实现方法; 2、通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ 基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度; 3、熟悉MATL AB 语言编程。 二、实验预习要求 1、复习《数字通信原理》第七章7.1节——奈奎斯特第一准则内容; 2、复习《数字通信原理》第七章7.2节——数字基带信号码型内容; 3、认真阅读本实验内容,熟悉实验步骤。 三、实验原理和电路说明 1、基带传输特性 基带系统的分析模型如图3-1所示,要获得良好的基带传输系统,就应该 () n s n a t nT δ-∑() H ω() n s n a h t nT -∑基带传输抽样判决 图3-1?基带系统的分析模型 抑制码间干扰。设输入的基带信号为()n s n a t nT δ-∑,s T 为基带信号的码元周期,则经过基 带传输系统后的输出码元为 ()n s n a h t nT -∑。其中 1 ()()2j t h t H e d ωωωπ +∞ -∞ = ? ?(3-1) 理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足: 10()0,s k h kT k =?=? ? , 为其他整数 ?? ?(3-2) 频域应满足:

Matlab 学习笔记

Matlab教程 命令+指定参数 表3-1 3.3 数据交换系统 MATLAB提供了多种方法将数据从磁盘或剪贴板中读入MATLAB工作空间。具体的读写方法可依据用户的喜好以及数据的类型来选择。这里主要介绍文本数据的读入。 对于文本数据(ASCII)而言,最简单的读入方法就是通过MATLAB的数据输入向导(Import Wizard),也可以通过MATLAB函数实现数据读入。 例如,对于文本文件test.txt: students’ scores English Chinese Mathmatics Wang 99 98 100 Li 98 89 70 Zhang 80 90 97 Zhao 77 65 87 下面通过上述两种方法将该文件数据读入MATLAB工作空间,先介绍MATLAB数据交换系统对文本数据的识别。此时文件的前几行(此处为“students’ scores”)将被识别为文件头,文件头可以为一行或几行,也可以识别出数据的列头(此处为:“English”、“Chinese”、和“Mathmatics”)和行头(此处为“wang”、“li”、“zhang”和“zhao”),其余的为可分断数据(此处为“99”、“98”、和“100”等)。 首先是通过数据输入向导编辑器读入数据,通过桌面平台上的【File】菜单中的【Import Data】选项打开输入向导编辑器,按向导提示进行操作完成整个文本数据的输入,则用户可以在MATLAB开发环境中使用该文本数据。 例如: >>whos Name Size Bytes Class Data 4 3 96 double array Grand total is 12 elements using 96 bytes >>Data Data = 9998 100 9889 70

图论算法及matlab程序的三个案例

图论实验三个案例 单源最短路径问题 Dijkstra 算法 Dijkstra 算法是解单源最短路径问题的一个贪心算法。其基本思想是,设置一个顶点集合S 并不断地作贪心选择来扩充这个集合。一个顶点属于集合S 当且仅当从源到该顶点的最短路径长度已知。设v 是图中的一个顶点,记()l v 为顶点 v 到源点v 1的最短距离, ,i j v v V ?∈,若 (,)i j v v E ?,记i v 到j v 的权ij w =∞。 Dijkstra 算法: ① 1{}S v =,1()0l v =;1{}v V v ??-,()l v =∞,1i =,1{}S V v =-; ② S φ=,停止,否则转③; ③ ()min{(),(,)} j l v l v d v v =, j v S ∈,v S ?∈; ④ 存在 1 i v +,使 1()min{()} i l v l v +=,v S ∈; ⑤ 1{} i S S v +=, 1{} i S S v +=-,1i i =+,转②; 实际上,Dijkstra 算法也是最优化原理的应用:如果12 1n n v v v v -是从1v 到 n v 的最短路径,则 12 1 n v v v -也必然是从1v 到 1 n v -的最优路径。 在下面的MATLAB 实现代码中,我们用到了距离矩阵,矩阵第i 行第j 行元 素表示顶点i v 到j v 的权ij w ,若i v 到j v 无边,则realmax ij w =,其中realmax 是 MATLAB 常量,表示最大的实数+308)。 function re=Dijkstra(ma)

信号与系统MATLAB实验总汇

实验一、MATLAB 编程基础及典型实例 一、实验目的 (1)熟悉MATLAB 软件平台的使用; (2)熟悉MATLAB 编程方法及常用语句; (3)掌握MATLAB 的可视化绘图技术; (4)结合《信号与系统》的特点,编程实现常用信号及其运算。 示例一:在两个信号进行加、减、相乘运算时,参于运算的两个向量要有相同的维数,并且它们的时间变量范围要相同,即要对齐。编制一个函数型m 文件,实现这个功能。function [f1_new,f2_new,n]=duiqi(f1,n1,f2,n2) a=min(min(n1),min(n2)); b=max(max(n1),max(n2)); n=a:b; f1_new=zeros(1,length(n)); f2_new=zeros(1,length(n)); tem1=find((n>=min(n1))&(n<=max(n1))==1); f1_new(tem1)=f1; tem2=find((n>=min(n2))&(n<=max(n2))==1); f2_new(tem2)=f2; 四、实验内容与步骤 (2)绘制信号x(t)=)3 2sin(2t e t ?的曲线,t 的范围在0~30s ,取样时间间隔为0.1s 。t=0:0.1:30; y=exp(-sqrt(2)*t).*sin(2*t/3); plot(t,y);

(3)在n=[-10:10]范围产生离散序列:?? ?≤≤?=Other n n n x ,033,2)(,并绘图。n=-10:1:10; z1=((n+3)>=0); z2=((n-3)>=0); x=2*n.*(z1-z2); stem(n,x);(4)编程实现如下图所示的波形。 t=-2:0.001:3; f1=((t>=-1)&(t<=1)); f2=((t>=-1)&(t<=2)); f=f1+f2; plot(t,f); axis([-2,3,0,3]);

图论与网络优化课程设计_Matlab实现

图论与网络优化课程设计 四种基本网络(NCN、ER、WS、BA) 的构造及其性质比较 摘要:网络科学中被广泛研究的基本网络主要有四种,即:规则网络之最近邻耦合网络(Nearest-neighbor coupled network),本文中简称NCN;ER随机网络G(N,p);WS小世界网络;BA无标度网络。本文着重研究这几种网络的构造算法程序。通过运用Matlab软件和NodeXL网络分析软件,计算各种规模下(例如不同节点数、不同重连概率或者连边概率)各自的网络属性(包括边数、度分布、平均路径长度、聚类系数),给出图、表和图示,并进行比较和分析。 关键字:最近邻耦合网络;ER随机网络;WS小世界网络;BA无标度网络;Matlab;NodeXL。

四种基本网络(NCN、ER、WS、BA) 的构造及其性质比较 1.概述 1.网络科学的概述 网络科学(Network Science)是专门研究复杂网络系统的定性和定量规律的一门崭新的交叉科学,研究涉及到复杂网络的各种拓扑结构及其性质,与动力学特性(或功能)之间相互关系,包括时空斑图的涌现、动力学同步及其产生机制,网络上各种动力学行为和信息的传播、预测(搜索)与控制,以及工程实际所需的网络设计原理及其应用研究,其交叉研究内容十分广泛而丰富。网络科学中被广泛研究的基本网络主要有四种,即:规则网络之最近邻耦合网络(Nearest-neighbor coupled network),本文中简称NCN;ER随机网络G(N,p);WS小世界网络;BA无标度网络。本文着重研究这几种网络的构造算法程序。计算各种规模下(例如不同节点数、不同重连概率或者连边概率)各自的网络属性(包括边数、度分布、平均路径长度、聚类系数),给出图、表和图示,并进行比较和分析。 2.最近邻耦合网络的概述 如果在一个网络中,每一个节点只和它周围的邻居节点相连,那么就称该网络为最近邻耦合网络。这是一个得到大量研究的稀疏的规则网络模型。 常见的一种具有周期边界条件的最近邻耦合网络包含围成一个环的N个节点,其中每K个邻居节点相连,这里K是一个偶数。这类网络的一个重要特征个节点都与它左右各/2 就是网络的拓扑结构是由节点之间的相对位置决定的,随着节点位置的变化网络拓扑结构也可能发生切换。 NCN的Matlab实现: %function b = ncn(N,K) %此函数生成一个有N个节点,每个节点与它左右各K/2个节点都相连的最近邻耦合网络 %返回结果b为该最近邻耦合网络对应的邻接矩阵 function b = ncn(N,K) b=zeros(N); for i = 1:N for j = (i+1):(i+K/2) if j<=N b(i,j)=1; b(j,i)=1; else b(i,j-N)=1;

Matlab的gui界面设计实例练习

一个不错的Matlab的gui界面设计实例 %非常漂亮的日历, function CalendarTable; % calendar 日历 % Example: % CalendarTable; S=datestr(now); [y,m,d]=datevec(S); % d is day % m is month % y is year DD={'Sun','Mon','Tue','Wed','Thu','Fri','Sat'}; close all figure; for k=1:7; uicontrol(gcf,'style','text',... 'unit','normalized','position',[0.02+k*0.1,0.55,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor','b',... 'String',DD(k),'fontsize',16,'fontname','times new roman'); end h=1; ss='b'; qq=eomday(y,m); for k=1:qq; n=datenum(y,m,k); [da,w] = weekday(n); if k==d; ss='r'; end uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.02+da*0.1,0.55-h*0.08,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',ss,... 'String',num2str(k)); ss='b'; if da==7; h=h+1;

实验一----信号的MATLAB表示及信号的运算

实验一----信号的MATLAB表示及信号的运算

信号的MATLAB表示及信号的运算 一、实验目的 1.掌握的MATLAB使用; 2.掌握MATLAB生成信号的波形; 3.掌握MATLAB分析常用连续信号; 4.掌握信号的运算的MATLAB实现。 二、实验工具 1.台式电脑一台; 2.MATLAB7.1软件环境; 三、实验内容 编写程序实现下列常用函数,并显示波形。 1.正弦函数 f(t)=Ksin(wt+a); 2.矩形脉冲函数f(t)=u(t)-u(t-t0); 3.抽样函数 sa(t)=sint/t; 4.单边指数函数 f(t)=Ke-t; 5.已知信号f1(t)=u(t+2)-u(t-2), f2(t)=cos(2pt),用MATLAB绘制f1t)+f2(t)和f1(t)*f2(t)的波形。

四、实验要求 预习信号的时域运算和时域变换(相加、相乘、移位、反折、尺度变化、例项)相关知识。 五、实验原理 在某一时间区间内,除若干个不连续的点外,如果任意时刻都可以给出确定的函数值,则称信号为连续时间信号,简称为连续信号。MATLAB提供了大量生成基本信号的函数,所以可利用连续信号在等时间间隔点的取值来近似表示连续信号,这些离散的数值能被MATLAB处理,并显示出来。 六、实验步骤 1.打开MATLAB7.1软件,并在老师的指导和带领下逐步熟悉此软件; 2.编写正弦函数程序: clear all; t=-8:.01:8; k=2;w=1;a=pi/4; f=k*sin(w*t+a); plot(t,f);

grid; xlabel('t'); ylabel('f(t)'); axis([-8 8 -3 3]); 3.编写矩形脉冲信号函数程序: clear all; t=-4:0.001:4; T=1; f1=rectpuls(t,4*T); f2=cos(2*pi*t); plot(t,f2+f1); axis([-4 4 -1.5 2.5]); grid on; figure plot(t,f2.*f1); axis([-4 4 -1.5 1.5]); grid on;

matlab学习笔记

1). >> x=-2*pi:0.1:2*pi; >> y1=sin(x); >> y2=sin(x+pi/3)+2; >> y3=cos(x); >> plot(x,y1,'.-'); >> hold on >> plot(x,y2,'.-') >> hold on >> plot(x,y3,'.-') >> plot(x,y1,'.-'); >> hold on >> plot(x,y2,'.-') >> hold on >> plot(x,y3,'.-') >> h=legend('sin($x$)','sin($x+\frac{\pi}{3}$)','cos($x$)') h = 159.0056 Warning: Unable to interpret TeX string "\frac{\pi}{3}$)". >> set(h,'Interpreter','latex') >> xlabel('$x$','Interpreter','latex') >> ylabel('$y$','Interpreter','latex') %添加函数图标及纵横坐标轴名称,如下图显示>>

2).常用画图命令: Surf (x,y,z )、ezsurf(z)、ezmesh(z) %使用surf 画图,要求想x,y,z 是同维数的矩阵 %使用ezsurf 和ezmesh 时,曲面函数必须能写成显函数的形式,如sin()/()Z xy xy = %可以使用@(x,y )+函数表达式 定义匿名函数,如@(,)sin(*)/(*)z x y x y x y = %surf(x,y,z,x); %设置图形颜色变化方向为沿x 轴,此项可省,一般不要求。 图形属性: axis 属性 Axis tight %将坐标轴减小到可能的最小尺寸 Axis equal %使x,y 轴的刻度设置相同 Axis square %使图形长宽相同 Axis off %不显示坐标轴 Axis([x0 x1 y0 y1 z0 z1]); %手动改变轴的范围 View (n,m ) %设定图形观察视角,n 为在水平方向测量的角度,m 为从水平面向上测量的仰俯角。 Subplot(n,m,x) %将图像窗口分为nxm 个子窗口,当前指的是第x 个,按行数。当要对第y 个图做一定的设置时,先输入命令subplot(n,m,y),然后再输入要做的设置命令。 Legend (‘xxx ’) %给图形设置图标,也可指定图标的位置,默认为右上角。 Text (x,y,‘xxx ’) %给图像添加注释内容,注释位于图形中(x,y )处。 Gtext(‘xxx ’); %给图像添加注释,位置随意,将十字光标点在哪儿就放哪儿。 delete(findobj('type','text')) %删除通过gtext()命令添加的注释内容 Close all %关闭所有图像窗口 Title (’xxx ‘) %给图形添加标题 Material 属性,设置曲面的材料属性,值有dull,shiny,metallic ,该命令可结合用在surf,mesh,pcolor,fill,fill3等函数中。 Plotyy(x,y1,x,y2,’plot ’) %在同一个图中画出两个图形,公用一个横轴,纵轴不同,分列两边,且纵轴刻度设置可不同,自动的。 Semilogx 和semilogy 表示横轴和纵轴采用对数坐标画出x-y 的图形,用法为semilogx(x,y)和semilogy(x,y). Loglog(x,y) %横纵轴均采用对数形式画出x-y 图形 Grid on %打开网格,系统默认为grid off ,即关闭网格。 A=Complex(x,y) %产生复数A=x+yi Real(A)=x,imag(A)=y. Fill (x,y,n ) %产生一个有x,y 坐标定义的填充颜色的图形,填充颜色根据n 对色图进行索引确定。 light('Color',选项一,'Style',选项二,'Position',选项三),选项一为表示光的颜色的矩阵,取RGB 三元组或相应的颜色字符。选项二可取为'infinite'和'local'两个值,分别表示无穷远光和近光。选项三为三维坐标点组成的向量形式[x,y,z]。对远光,它表示光穿过该点射向原点;对于近光,它表示光源所在位置。假如函数不包含任何参数,则采用缺省设置:白光、无穷远光、穿过(1,0,1)射向坐标原点。一般后两个参数可省,默认。--例: [x,y,z]=peaks; surf(x,y,z); shading interp;

相关文档