当前位置:文档之家› MATLAB学习笔记

MATLAB学习笔记

MATLAB学习笔记
MATLAB学习笔记

Matlab学习笔记

《第一章》

矩阵及基本运算1、rand相关

rand()随机矩阵,元素在(0,1)之间;

randn()正态分布随机矩阵!元素大小是不限制的,方差为1

randperm(n) 生成1到n之间n个随机数,相当于对n个数进行一个排列;

2、blkdiag(a,b,c...)产生以a,b,c 为对角元素的对角矩阵;

3、numel(A)计算矩阵A中元素的个数;

4、compan 计算友矩阵,对于计算特征值特征向量很有帮助,eig为计算特征值;

5、linspace(a,b ,n)将a,b等分为n等分,如果不输入n将视为默认100

6、几个特殊矩阵:全一矩阵ones;单位矩阵eye;全零阵zeros

7、logspace(a,b):产生在(10^a,10^b)之间的对数等分向量,同样可以在最后进行限制logspace(a,b,n),eg:logspace(1,2,6)结果为:ans =10.0000 15.8489 25.1189 39.8107 63.0957 100.0000,另外还有一个:y = logspace(a,pi),不太一样:logspace(1,pi,5) :ans =10.0000 7.4866 5.6050 4.1963 3.1416,这个主要应该是由于pi是Matlab内部定义的常数。

8、哈达玛(Hadamard)矩阵是由+1和-1元素构成的正交方阵;

9、希尔伯特矩阵Hilbert:hilb(n),其元素为H(i,j)=1/(i+j-1)。

10、Pascal矩阵,magic魔方矩阵,Hankel方阵,托普利兹矩阵toeplitz,Wilkinson 特征值测试阵。由于自己数学功底不是很强,这些矩阵还不是很理解,以后用到

的时候再慢慢了解吧。

11、矩阵的乘法:A*B:两个矩阵相乘;A.*B:矩阵对应元素相乘;dot(A,B):矩阵的点成;cross(A,B):矩阵的叉乘;conv:矩阵的卷积;kron(A,B):矩阵的张量积,这个相当于用A中每个元素乘以矩阵B,所以这个矩阵还是蛮大的。

12、关于集合的一些函数:

求两个函数的交集c=intersect(a,b),则c= a∩b;

求两个函数的并集c=union(a,b),则c= a∪b;

检测集合中的元素d=ismember(a,S),当a属于集合S的时候返回值d=1;

两个集合的差d=setdiff(a,b),表示d=a-b;

去集合的单值元素unique(a)

异或:两个矩阵交集的非c = setxor(a,b)。

13、矩阵的除法:Matlab提供了两种除法运算:左除(\)和右除(/)。一般情况下,X=A\B是方程A*X =B的解,而X=B/A是方程X*A=B的解;

14、方阵的行列式: d=det(A). determinant;

15、矩阵的逆:Y=inv(X) %求方阵X的逆矩阵。若X为奇异阵或近似奇异阵,将给出警告信息;当矩阵为奇异矩阵的时候,使用矩阵的伪逆命令:Y=pinv(X),可以在某种程度上代替矩阵的逆。则若X是非奇异矩阵,inv(X)=pinv(X);

16、矩阵的迹:Y=trace(X) %方阵X的对角线元素之和;

17、矩阵和向量的范数:norm ,n=norm(X).默认为二范数,n=norm(X).自己可以设定如: n=norm(X,1)表示一范数, n=norm(X,inf)表示无穷范数;

18、矩阵的条件数:d=cond(X).表示X的2-范数的条件数,即X的最大奇异值和最小奇异值的商;

19、矩阵的秩:d=rank(A);

20、矩阵对角线元素的提取:v=diag(A),同时,也可以进行设定v=diag(A,k):k=0,表示抽取主对角线元素; k>0,表示抽取上方对角线元素; k<0,表示抽取下方对角线元素;

21、上下三角阵的提取:tril(A)提取矩阵A的下三角阵,triu(A)提取矩阵A 的上三角阵。

22、矩阵的变维:通常有两种方法实现:“:”和“reshape”命令。前者主要是针对已知两个矩阵的操作,后者主要是对一个矩阵的操作;矩阵的旋转:B=rot90(A):将矩阵A旋转900;矩阵的翻转:fliplr,矩阵的左右翻转;flipud,矩阵的上下翻转。

23、复制和平铺矩阵:B=repmat(A,m,n),将矩阵A复制m*n块得到矩阵B;

24、矩阵的比较:矩阵的比较关系是针对于两个矩阵对应元素的,所以在使用关系运算时,首先应该保证两个矩阵的维数一致或其中一个矩阵为标量。关系运算是对两个矩阵的对应运算进行比较,若关系满足,则将结果矩阵中该位置元素置为1,否则置0;

25、关于矩阵取整:floor(A),将A的元素负无穷取整;ceil(A),将A的元素按正无穷方向取整;fix(A),将A的元素按离0近的方向取整;round(A),将A的元素按四舍五入取整。

26、矩阵元素的余数:rem(A,x);

27、矩阵的逻辑运算:逻辑与A&B,逻辑或A|B,逻辑非~A,异或xor;

28、符号矩阵sym。将数值矩阵转化为符号矩阵B=sym(A);另外可以对矩阵进行索引和修改操作,B(m,n)=(l,k);

29、因式分解factor(a)。注:因式分解的定义,把一个多项式化为几个最简整式

的积的形式。在MATLAB中建立M文件可以直接使用命令edit;

30、符号矩阵(函数)的展开:expand命令Eg:syms x;y=(x+2)^4;z=expand(y)则:z =x^4 + 8*x^3 + 24*x^2 + 32*x + 16;collect:合并同类项;

31、符号矩阵的简化:simple或simplify,pretty命令可以使的结果更好看一些;

32、矩阵的分解:cholesky分解[R,p]=chol(A), 如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X, 若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵;

33、LU分解,又称矩阵的三角分解,[L,U]=lu(A):它的目的是将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU;广义上也有[L,U,P]=lu(A),满足LU=PA;

34、QR分解:[Q,R]=qr(A),将矩阵A分解成一个正交矩阵与一个上三角矩阵的乘积;函数qrdelete: [Q,R]=qrdelete(Q,R,j):返回将矩阵A的第j列移去后的新矩阵的qr分解; [Q,R]=qrinsert(Q,R,j,x):在矩阵A中第j列插入向量x后的新矩阵进行qr分解。若j大于A的列数,表示在A的最后插入列x;

35、schur分解:T = schur(A):产生schur矩阵T,即T的主对角线元素为特征值的三角阵;也可使用广义命令[U,T] = schur(A):返回正交矩阵U和schur 矩阵T,满足A = U*T*U'; 函数rsf2csf:将实Schur分解转化成复Schur分解; 36、矩阵的特征值分解:d=eig(A);或者[V,D]=eig(A) 计算A的特征值对角阵D 和特征向量V,使AV=VD成立;

37、矩阵的奇异值分解:[U,S,V]=svd(X), 返回一个与X同大小的对角矩阵S,两个酉矩阵U和V,且满足= U*S*V'。若A为m×n阵,则U为m×m阵,V为n×n阵。奇异值在S的对角线上,非负且按降序排列; 广义奇异值分解:

[U,V,X,C,S] = gsvd(A,B),返回酉矩阵U和V、一个普通方阵X、非负对角矩阵C 和S,满足A = U*C*X',B = V*S*X',C'*C + S'*S = I (I为单位矩阵);A和B的列数必须相同,行数可以不同;

38、特征值问题的qz分解。[AA,BB,Q,Z,V] = qz(A,B) ,A、B为方阵,产生上三角阵AA和BB,正交矩阵Q、Z或其列变换形式,V为特征向量阵。且满足:Q*A*Z= AA 和Q*B*Z = BB;

39、海森伯格(Hessenberg)矩阵:矩阵H的第一子对角线下元素都是0 ,函数格式H=hess(A);

40、线性方程组的解:①直接法:AX=B的解为X=A\B,XA=B的解为X=B/A;

②用函数rref进行求解C=[A,B],C为系数矩阵A和常数构成的增广矩阵,当使用rref命令(求解最简行解)之后最后一列就是所求的解;

41、矩阵的LU分解,又称为Gauss分解,将任意方阵分解为下三角阵和上三角阵的乘积。即A=L*U,L*U*X=B,这样可以提高运算速度,命令为[L,U]=lu(A);Cholesky分解:若A为对称正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即:A=R*R’,其中R为上三角阵,命令为R=chol(A);对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形式,即:A=QR;

42、null求解零空间,即满足AX=0,实际上是求解出解空间的一组基(基础解系),注:format rat指定有理式格式输出,B=null(A, ’r’);

43、让矩阵输出的结果更漂亮一些:pretty(X),在此举一个综合一点的例子,求A*X=0的通解A=[1 2 2 1;2 1 -2 -2;1 -1 -4 -3];format rat%指定有理数格式输出;B=null(A,’r’);syms k1 k2%定义符号变

量;X=k1*B(:,1)+k2*B(:,2);pretty(X);

44、求解非齐次线性方程组的通解,首先需要先判断方程组是否有解,若有解,再去求通解。因此,步骤为:第一步:判断AX=b是否有解,(注:判断系数矩阵A的秩是否和其增广矩阵的秩是否相等,若相等,方程有解R(A)=R(B)

45、平衡矩阵B,[T,B]=balance(A),满足B=T-1AT;

46、复对角矩阵转化为实对角矩阵:cdf2rdf,将复对角阵d变为实对角阵D,在对角线上,用2×2实数块代替共轭复数对;

47、正交基orth,B=orth(A):将矩阵A正交规范化;B*B’=eye(rank(A));

48、求行阶梯矩阵及向量组的基:[R,jb]=rref(A),R表示将矩阵A化成行最简形,jb是一个向量,其含义为:r=length(jb)为A的秩;A(:, jb)为A的列向量基;jb 中元素表示基向量所在的列;

49、稀疏矩阵的创建S=sparse(A);将矩阵A转化为稀疏矩阵形式,即由A 的非零元素和下标构成稀疏矩阵S,sparse是用来产生稀疏矩阵的,详细一点的S = sparse(i,j,s,m,n),利用向量i,j,s来产生一个m*n的矩阵,产生方法为

S(i(k),j(k)) =s(k);full函数,将稀疏矩阵转换为满矩阵(相当于sparse函数的逆)A=full(S);另外,find命令用于查找稀疏矩阵中的非零元素,[i,j,v] = find(X):检索X中非零元素的行标i和列标j以及对应的元素值v;

50、基本稀疏矩阵,带状(对角)稀疏矩阵:[B,d] = spdiags(A),从矩阵A中提取所有非零对角元素,这些元素保存在矩阵B中,向量d表示非零元素的对

角线位置;单位稀疏矩阵:speye(m,n),生成m*n的单位对角矩阵;稀疏均匀分布随即矩阵R=sprand(S):生成与S具有相同稀疏结构的均匀分布随机矩阵;稀疏正态分布随机矩阵R=sprandn(S);稀疏对称随机矩阵sprandsym,R = sprandsym(S),生成稀疏对称随机矩阵,其下三角和对角线与S具有相同的结构,其元素服从均值为0、方差为1的标准正态分布;

51、稀疏矩阵的运算:①稀疏矩阵非零元素的个数n=nnz(x);②稀疏矩阵的非零元素s = nonzeros(A),返回矩阵A中非零元素按列顺序构成的列向量;③稀疏矩阵非零元素的内存分配n = nzmax(S),返回非零元素分配的内存总数n;④、稀疏矩阵的存贮空间:S=spalloc(m,n,nzmax),产生一个m×n阶只有nzmax个非零元素的稀疏矩阵,这样可以有效减少存贮空间和提高运算速度;⑤稀疏矩阵的非零元素应用:f = spfun('function',S),用S中非零元素对函数'function'求值,如果'function'不是对稀疏矩阵定义的,同样可以求值;⑥:把稀疏矩阵的非零元素全换为1,R=spones(S),将稀疏矩阵S中的非零元素全换为1;

52、画稀疏矩阵非零元素的分布图形:spy函数,具体spy(S,'LineSpec',markersize)其中LineSpec指定绘图标记和颜色,markersize 为整数,指定点阵大小;

53、矩阵变换:列近似最小度排序A=colamd(S)返回稀疏矩阵S的列的近似最小度排序向量A;稀疏对称最小度排列,p = symmmd(S),返回S的对称最小度排列向量p,S为对称正定矩阵;

54、稀疏矩阵的近似欧几里得范数和条件数:c = condest(A),计算方阵A的1-范数中条件数的下界值c;nrm = normest(S),返回矩阵S的2-范数的估计值,相对误差为10-6;稀疏矩阵的不完全LU分解:[L,U] = luinc(X,'0');X为稀疏

方阵;L为下三角矩阵的置换形式;U为上三角矩阵;'0'是一种分解标准。

《第二章》

数值计算与数据分析55、基本数学函数:正弦函数Y=sin(X),双曲正弦函数Y=sinh(X),反正弦函数Y=asin(X),反双曲正弦函数Y=asinh(X);余弦函数Y=cos(X),双曲余弦函数Y=cosh(X),反余弦函数Y=cos(X),反双曲余弦函数Y=acosh(X);正切函数Y=tan(X),双曲正切函数Y=谈话(X),反正切函数Y=atan(X),反双曲正切函数Y=atanh(X);余切函数Y=cot(X),双曲余切函数Y=coth(X),反余切函数Y=acot(X),反双曲余切函数Y=acoth(X),另外还有正割sec(1/cos)和余割csc(1/sin),PS:四象限的反正切函数P=atan2(Y,X),返回一与参量X和Y同型的、与X和Y元素的实数部分对应的、元素对元素的四象限的反正切函数阵列P,其中X和Y的虚数部分将忽略。阵列P中的元素分布在闭区间[-pi,pi]上。特定的象限将取决于sign(Y)与sign(X);

56、取余rem或mod,p=rem(X,Y);exp:以e为底的指数函数y=exp(x),expm (x):求矩阵的以e为底的指数函数,Y=expm(X);log以e为底的对数, y=log(x), log2(x)、long10(X)分别是以2和10为底的对数。

57、sort命令:把输入参量中的元素按从小到大的方向重新排列;

58、abs:数值的绝对值或复数的幅值;复数的共轭conj,复数的虚部imag,复数的实部real,复数的相角:P=angle(Z);

59、用实数和虚数部分创建复数:c=complex(a,b);带符号的除法余数mod,

M=mod(X,Y),若运算数x与y有相同的符号,则mod(X,Y)等于rem(X,Y)。总

之,对于整数x,y,有:mod(-x,y) = rem(-x,y)+y;

60、二项式系数或所有的组合数,C=nchoosek(n,k)参量n,k为非负整数,返回n! / ( (n-k)! k!),即一次从n个物体中取出k个的组合数,相当于n

C=n! / ( (n-k)! k!)

k

命令,另外阶乘的函数为factorial;

61、yi = interp1(x,Y,xi,method) ,用指定的算法计算插值,主要包括‘nearest’最近邻点插值,’linear’线性插值,‘spline’三次样条函数插值,‘pchip’分段三次Hermite插值,‘cubic’:双三次插值;

62、rat与rats:有理分式近似。rat对于有连续出现的小数的数值,将会用有理式近似表示它们,函数rats调用函数rat,且返回字符串。rats=format rat Ps:inline函数,matlab中定义的一个内置函数,可以直接内嵌在命令行中;63、常微分方程数值解:ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb

《第三章》

符号运算

64、定义符号变量:syms a,b,c,d;

65、基本运算:合并同类项collect,列空间的基colspace,B = colspace(A)返回矩阵B,其列向量形成由矩阵A的列向量形成的空间的坐标基,其中A可以是符号或数值矩阵。而size(colspace(A),2)等于rank(A)。即由A生成的空间维数等于A的秩;compose,复合函数的计算,compose(f,g):返回复合函数f[g(y)],其中f=f(x),g=g(y);

66、符号复数的共轭conj(X),real(Z)返回符号复数的实数部分,real(Z)返回

符号复数的虚部部分;Y=cosint(X),返回余弦函数的整函数,Ps:γ:欧拉常数,可以通过vpa(‘eulergamma’)获得;

67、digits:设置变量的精度;R = double(S),将符号对象S转换为数值对象R;expand ,R=expand(S)对符号表达式S中每个因式的乘积进行展开计算。该命令通常用于计算多项式函数、三角函数、指数函数与对数函数等表达式的展开式;符号因式分解:factor(X),参量x可以是正整数、符号表达式阵列或符号整数阵列。若X为一正整数,则factor(X)返回X的质数分解式。若x为多项式或整数矩阵,则factor(X)分解矩阵的每一元素。若整数阵列中有一元素位数超过16位,用户必须用命令sym生成该元素。

68、simple:搜索符号表达式的最简形式,r = simple(S),该命令试图找出符号表达式S的代数上的简单形式,显示任意的能使表达式S长度变短的表达式,且返回其中最短的一个。若S为一矩阵,则结果为整个矩阵的最短形式,而非是每一个元素的最简形式。若没有输出参量r,则该命令将显示所有可能使用的算法与表达式,同时返回最短的一个;

69、符号矩阵的维数:size,d = size(A)若A为m*n阶的符号矩阵,则输出结果d=[m,n];代数方程的符号解析解solve,g = solve(eq);

70、特征多项式:p=poly(A); poly2sym将多项式系数向量转化为带符号变量的多项式,记得pretty可以对结果进行简化得到我们熟知的形式;

71、r=findsym(S):从一符号表达式中或矩阵中找出符号变量;g=finverse(f),返回函数f 的反函数。其中f为单值的一元数学函数,如f=f(x)。若f的反函数存在,设为g,则有g[f(x)] = x;

72、horner:套嵌形式的多项式表达式;r=symsum(S,a,b),符号表达式求和,

首先定义符号函数,然后对从a项到b项求和操作;广义超几何函数函数hypergeom;

73、limit极限,limit(F):用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当x→0时;limit(F,x,a),计算符号表达式F=F(x)的极限值,当x→a时;

74、diff(S,'v',n):对表达式S中指定的符号变量v计算S的n阶导数;

75、R = int(S,v,a,b):对表达式s中指定的符号变量v计算从a到b的定积分;dslove,常微分方程的符号解,r=dsolve('eq1,eq2,…','cond1,cond2,…','v'),ps:若没有指定变量v,则缺省变量为t;

76、画符号函数的等高线图,ezcontour(f),画出二元符号函数f=f(x,y)的等高线图,函数f将被显示于缺省的平面区域[-2π

77、在matlab中特别在使用句柄函数@的时候,记得在前面加上“.”,代表元素运算,当不加点的时候表示矩阵或者数组相乘,eg:A.*B代表矩阵A、B对应元素相乘而A*B则代表A和B矩阵的相乘;

78、符号函数的三维网格图ezmesh(f),画二元数学符号函数f=f(x,y)的网格图,ezmeshc,同时画出曲面网格图与等高线图;

79、画符号函数的图形ezplot(f),对于显式函数f=f(x),在缺省的范围[-π

π]上画函数f(x);对于隐函数f=f(x,y),在缺省的平面区域[-2π

80、三维参量曲线图,ezplot3(x,y,z),在缺省的范围0

81、画极坐标图形,格式 ezpolar(f),在缺省的范围0

82、三维带颜色的曲面图,ezsurf (f ),画出二元数学符号函数z=f(x,y)的曲面图形,同样的使用ezsurfc 命令可同时画出曲面图与等高线图;

83、Fourier 积分变换,格式 F = fourier(f),对符号单值函数f 中的缺省变量x (由命令findsym 确定)计算Fourier 变换形式。缺省的输出结果F 是变量w 的函数?∞

∞--==?=dx e )x (f )w (F F )x (f f iwx ;运行了一个例子:syms x w u v f = sin(x)*exp(-x^2); F1 = fourier(f),结果却并不是期望得到的:

transform::fourier(sin(x)/exp(x^2), x, -w),这时候使用命令simplify

(fourier(sin(x)/exp(x^2), x, -w))才可以得到正确的结果。

84、

85、

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;

相关主题
文本预览
相关文档 最新文档