搜档网
当前位置:搜档网 › Matlab程序设计基础

Matlab程序设计基础

Matlab程序设计基础
Matlab程序设计基础

表1.整型数据取值范围

Matlab 默认变量

常量名 常量值

pi 圆周率

eps 浮点运算的相对精度5210- realmin 最小的浮点数10222- realmax 最大的浮点数10232 Inf 无穷大

NaN Not-a-Number ,表示不确定值

2.2.2 1,设定字符串 用‘’

表2 字符串常用函数及其功能表

函数 功能

函数 功能

size 查看字符数组的维数

abs

查找一个字符的ASSII 码 char 把数字按照ASCII 码转化为字符串 strcat 字符串连接strcat (水平连接)strvcat (垂直连接) strcmp 比较字符串

strrep 替换字符串 strcmpi 忽略大小写比较字符串

upper

转换为大写

strncmp 比较字符串的前n 个字符 lower 转换为小写

findstr

在一个字符串中查找另一个字符串

strtok 返回字符串中第一个分隔符(空格,回车和Tab 键)前的部分 strjust 对齐字符数组,包括左对齐,右对齐和居中

blanks 产生空字符串 stematch

查找匹配的字符串

deblank

删除字符串的空格

MATLAB 程序基本语句

程序分支控制语言

1. if/else 语句

if 语句的语法形式如下所示: if expression statements1

数据类型

取值范围 转换函数 Signed 8-bit integer -27 to 27-1 int8 Signed 16-bit integer -215 to 215-1 int16 Signed 32-bit integer -231 to 231-1 int32 Signed 64-bit integer -263 to 263-1 int64 Unsigned 8-bit integer 0 to 28-1 uint8 Unsigned 16-bit integer 0 to 216-1 uint16 Unsigned 32-bit integer 0 to 232-1 uint32 Unsigned 64-bit integer 0 to 264-1 uint64

else expression

statements2

end

当expression的结果为真时,执行statement1中的语句,否则执行statement2中的语句。当有多个选择时,可以使用if/elseif语句。if/elseif语句的语法如下所示:

if expression

statements1;

elseif expression

statements2;

else expression

statements3;

end

例如:

3 20 0

3x

x

y

x

x <

?

=?

?

function math(x)

if x<0

y=x^3

else

y=3*x^2

end

2.switch/case

switch/case语句的语法形式如下所示:switch switch-expression

case case-expression1,

statements1;

case case-expression2,

statements2;

case case-expression3,

statements3;

………

otherwise

statements;

end

例如:

%文件名为 cj.m

function result=cj(x)

%将成绩除以10后取整

n=fix(x/10);

switch n

case {8,9,10}

disp('优秀')

case 7

disp('良好')

case 6

disp('及格')

otherwise

disp('不及格')

end

程序循环控制语句

使用循环控制语句,可以重复执行代码块。用for语句执行指定次数;while语句适合于循环一直执行,直到满足条件为止;continue和break语句对退出循环给予更多的控制。

1.for循环

for循环允许一组命令以固定的和预定的次数重复执行,for循环的一般形式如下:

for index=expression(循环变量=初值:步长:终值)

statements;

end

例如:

使用for循环计算1+2+3+……+100的值。

程序如下:

sum=0;

for i=1:1:100

sum=sum+i;

end

sum

2.while循环

while循环以不定的次数来求一组命令值。while循环的一般形式如下:

while expression

statements;

end

例如:

1.输入项数n,求自然数的前n项和;

n=input('n=')

sum=0;k=1;

while k<=n

sum=sum+k;

k=k+1;

end

sum

2.求不超过1000的偶数之和与奇数之和。

oushuhe=0;

jishuhe=0;

i=1;

while i<1000

if mod(i,2)==0

oushuhe=oushuhe+i;

else

jishuhe=jishuhe+i;

end

i=i+1;

end

oushuhe

jishuhe

循环嵌套或多重循环

例如:对任意10个数进行从大到小的排列。程序如下:

a=input('a=');

for i=1:9

for j=j+1:10

if a(i)>a(j)

a(i)=a(i)+a(j);

a(j)=a(i)-a(j);

a(i)=a(i)-a(j);

end

end

end

disp(a);

3.continue 语句

continue命令经常与for或while语句一起使用,作用是结束本次循环,即跳过循环体中尚未执行的语句,接着下一次是否执行循环的判断。

4.break语句

break命令经常与for或while语句一起使用,作用是终止本次循环,跳出内层循环。

程序终止控制语句

一般程序代码都是按照执行完后正常退出的,但是,当遇到某些特殊情况,需要程序立即退出时,可以使用return语句提前终止程序运行。Return语句常用在MATLAB函数式M 文件中。

例如:

return语句使用实例。

n=-2;

%n小于0时退出程序

if n<0

disp('negtive number!')

return;

end

disp('codon number')

程序异常处理语句

MATLAB中提供了一种可以进行错误处理的try…catch语句,其语法格式如下:

try

表达式1,表达式2,..,表达式n

catch

表达式1,表达式2,..,表达式n

end

当try与catch之间的所有表达式在执行时没有错误发生时,则不执行catch与end之间的语句;反之则执行。也可以用lasterr检查最后发生的错误信息。

A=[1 2 3;4 5 6]

B=[4 7;8 6]

try

A',A+A,A+B,A*B

catch

disp('there is error')

end

disp('lasterr')

MATLAB函数

help elfun

Elementary math functions.(小学数学函数)

Trigonometric.(三角)

sin -正弦

sind -正弦值参数以度为单位

sinh - 双曲正弦值

asin - 反正弦.

asind - 正弦反以度为单位的结果

asinh -反双曲正弦值

cos - 余弦

cosd - 余弦值的参数以度为单位

cosh - 双曲余弦值

acos - 反余弦值.

acosd - 余弦反以度为单位的结果

acosh - 双曲余弦值

tan - 正切.

tand - 参数以度为单位.

tanh - 双曲正切值.

atan - 反切线

atand - 切线反以度为单位的结果

atan2 - 四象限反正切值

atanh --反双曲正切值.

sec - 正割

secd - 正割的参数以度为单位

sech - 双曲正割.

asec -反正割。

asecd - 结果以度为单位的反割技术。

asech - 反双曲正割。

csc - 余割。

cscd - 余割的参数以度为单位。

csch - 双曲余割

acsc - 反余割。

acscd -反余割以度为单位的结果

acsch -反双曲余割。

cot - 余切。

cotd -余切的参数以度为单位。

coth - 双曲线余切.

acot - 反余切。

acotd -反余切以度为单位的结果

acoth -反双曲余切。

hypot -平方和的平方根。

Exponential.(指数)

exp - 指数.

expm1 - 准确计算exp(x)-1

log - 自然对数.

log1p - 准确计算log(1+x).

log10 - 对数共同(基地10)

log2 - 基2 对数和解剖浮点数.

pow2 - 基地2力量和标度浮动小数点数字. realpow - 电源上复杂的结果,将错误。

reallog - 真正的numbero自然对数.

realsqrt - 大于或等于零的平方根.

sqrt -平方根.

nthroot - 实数的真正的n 次根.

nextpow2 - 其次更大的功率的2。

Complex.(复杂)

abs - 绝对值.

angle -相角.

complex - 修建从真正和虚构部分的复杂数据。conj -共轭复数。

imag - 复杂的假想部分.

real - 复杂的实质部分。

unwrap - 解开相角.

isreal -真正的数组,则为true。

cplxpair - 对数字为共轭复数对进行排序。

Rounding and remainder.(舍入,其余部分。)

fix -圆向零。

floor - 圆往减去无限。

ceil - 轮对正无穷大。

round -舍入为最接近的整数。

mod - 模量(分立后的签名其余部分)。

rem - 分立后的其余部分。

sign -符号取值函数

help specfun

Specialized math functions.(专门的数学函数。)

Specialized math functions.

airy - Airy functions.

besselj - Bessel function of the first kind.

bessely - Bessel function of the second kind.

besselh - Bessel functions of the third kind (Hankel function).

besseli - Modified Bessel function of the first kind.

besselk - Modified Bessel function of the second kind.

beta - Beta function.

betainc - Incomplete beta function.

betaln - Logarithm of beta function.

ellipj - Jacobi elliptic functions.

ellipke - Complete elliptic integral.

erf - Error function.

erfc - Complementary error function.

erfcx - Scaled complementary error function.

erfinv - Inverse error function.

expint - Exponential integral function.

gamma - Gamma function.

gammainc - Incomplete gamma function.

gammaln - Logarithm of gamma function.

psi - Psi (polygamma) function.

legendre - Associated Legendre function.

cross - Vector cross product.

dot - Vector dot product.

Number theoretic functions.(数字理论作用。)

factor - Prime factors.

isprime - True for prime numbers.

primes - Generate list of prime numbers.

gcd - Greatest common divisor.

lcm - Least common multiple.

rat - Rational approximation.

rats - Rational output.

perms - All possible permutations.

nchoosek - All combinations of N elements taken K at a time.

factorial - Factorial function.

Coordinate transforms.(坐标转换。)

cart2sph - Transform Cartesian to spherical coordinates.

cart2pol - Transform Cartesian to polar coordinates.

pol2cart - Transform polar to Cartesian coordinates.

sph2cart - Transform spherical to Cartesian coordinates.

hsv2rgb - Convert hue-saturation-value colors to red-green-blue.

rgb2hsv - Convert red-green-blue colors to hue-saturation-value. help elmat

Elementary matrices and matrix manipulation.(初等矩阵和矩阵操作。)

Elementary matrices.(初等矩阵。)

zeros - Zeros array.

ones - Ones array.

eye - Identity matrix.

repmat - Replicate and tile array.

linspace - Linearly spaced vector.

logspace - Logarithmically spaced vector.

freqspace - Frequency spacing for frequency response.

meshgrid - X and Y arrays for 3-D plots.

accumarray - Construct an array with accumulation.

: - Regularly spaced vector and index into matrix.

Basic array information.(基本阵列信息。)

size - Size of array.

length - Length of vector.

ndims - Number of dimensions.

numel - Number of elements.

disp - Display matrix or text.

isempty - True for empty array.

isequal - True if arrays are numerically equal.

isequalwithequalnans - True if arrays are numerically equal.

Matrix manipulation.(矩阵操作。)

cat - Concatenate arrays.

reshape - Reshape array.

diag - Diagonal matrices and diagonals of matrix.

blkdiag - Block diagonal concatenation.

tril - Extract lower triangular part.

triu - Extract upper triangular part.

fliplr - Flip matrix in left/right direction.

flipud - Flip matrix in up/down direction.

flipdim - Flip matrix along specified dimension.

rot90 - Rotate matrix 90 degrees.

: - Regularly spaced vector and index into matrix. find - Find indices of nonzero elements.

end - Last index.

sub2ind - Linear index from multiple subscripts.

ind2sub - Multiple subscripts from linear index.

bsxfun - Binary singleton expansion function.

Multi-dimensional array functions.(多维数组的函数。)

ndgrid - Generate arrays for N-D functions and interpolation. permute - Permute array dimensions.

ipermute - Inverse permute array dimensions.

shiftdim - Shift dimensions.

circshift - Shift array circularly.

squeeze - Remove singleton dimensions.

Array utility functions.(数组实用程序函数。)

isscalar - True for scalar.

isvector - True for vector.

Special variables and constants.(特殊变量和常数。)

ans - Most recent answer.

eps - Floating point relative accuracy.

realmax - Largest positive floating point number.

realmin - Smallest positive floating point number.

pi - 3.1415926535897....

i - Imaginary unit.

inf - Infinity.

nan - Not-a-Number.

isnan - True for Not-a-Number.

isinf - True for infinite elements.

isfinite - True for finite elements.

j - Imaginary unit.

why - Succinct answer.

Specialized matrices.(专门的矩阵。)

compan - Companion matrix.

gallery - Higham test matrices.

hadamard - Hadamard matrix.

hankel - Hankel matrix.

hilb - Hilbert matrix.

invhilb - Inverse Hilbert matrix.

magic - Magic square.

pascal - Pascal matrix.

rosser - Classic symmetric eigenvalue test problem.

toeplitz - Toeplitz matrix.

vander - Vandermonde matrix.

wilkinson - Wilkinson's eigenvalue test matrix.

子函数例如:

子函数的函数实例:

function[avg,med]=calculate(u);

%主函数newstats调用两个子函数求输入矢量的平均值和中值dui

%获得参数长度

n=length(u);

%调用子函数average

avg=average(u,n);

%调用子函数median

med=median(u,n)

%定义函数average,计算平均值

function a=average(v,n);

a=sum(v)/n;

%定义函数median,计算中值

function m=median(v,n);

%对矢量进行排序sort(x):对向量x的元素进行排序(sorting)rem 相除后求余w=sort(v);

if rem(n,2)==1

m=w((n+1)/2);

else

m=(w(n/2)+w(n/2+1))/2;

end

嵌套函数

在一个函数内部,可以定义一个或多个函数,这种定义在其他函数内部的函数被称为嵌套函数。嵌套可以多层发生,即一个函数内部可以嵌套多个函数,在嵌套函数内部又可以再嵌套其它函数。

嵌套函数的语法形式如下:

function a=A(m1,m2)

………

function b=B(m3)

………

end

end

基本绘图方法

二维图形函数与调用方法

1.常用绘图函数

函数功能

绘制二维图形,x轴为对数坐标,y轴为线性坐标

smilogy 绘制二维图形,y轴为对数坐标,x轴为线性坐标loglog 绘制二维图形,x轴,y轴均为对数坐标

plotyy 绘制二维图形,在图形的左右各有一个y轴

polar 绘制极坐标曲线

grid 在图形窗口添加网络(Grid on)或去掉网格(Grid off) zoom 允许(Zoom on)或不允许(Zoom off )对图形进行放大

缩小操作

ginput 用鼠标获取图形中点的坐标

patch 填充二维或三维坐标中的二维图形

fill 填充二维坐标中的二维图形

x1=1:9;

y1=sin(x1);

subplot(1,3,1),plot(x1,y1)

x2=[3,3,9;8,1,2;1,8,5;7,9,1];

y2=[2,4,6,5;7,8,6,7;8,9,11,5];

subplot(1,3,2),plot(x2)

2.特殊坐标的二维图形

(1)极坐标曲线

polar(theta,rho,s) 注:theta和rho分别为角度向量和幅值向量,要求theta 和rho的长度相同,s的内容和用法与函数plot()基本一致

例如:

x=0:0.1:8*pi;

y=cos(4*x)+1/4;

polar(x,y,'+s')

title('极坐标图形')

(2)对数坐标曲线

semilogx(),semilogy(),loglog()

例1:

x=0:0.1:2*pi;

y=sin(x);

subplot(1,2,1),semilogx(x,y)

grid on

subplot(1,2,2),semilogy(x,y)

grid on

例2:

x=0:0.1:6*pi;

r=cos(x/3)+1/9

subplot(2,2,1),polar(x,r),grid on

subplot(2,2,2),plot(x,r),grid on

subplot(2,3,4),semilogx(x,r),grid on

subplot(2,3,5),semilogy(x,r),grid on

subplot(2,3,6),loglog(x,r),grid on

(3)双y轴图形

MATLAB的函数potyy()可以绘制左右各一个y轴的图形。该函数有以下几种常用的形式。

?plotyy(x1,y1,x2,y2)在一个图形窗口同时绘制两条曲线(x1,y1)和(x2,

y2),曲线(x1,y1)

用左侧的y轴,曲线(x2,y2)用右侧的y轴。

?plotyy(x1,y2,x2,y2,fun) "fun"是字符串格式,用来指定绘图的函数名,如

plot ,semilogx等。例如,命令plotyy(x1,y1,x2,y2,'semilogx')就是用函数semilogx()

来绘制曲线(x1,y1)和(x2,y2)。

?plotyy(x1,y2,x2,y2,fun1,fun2)和第二种形式类似,用“fun1”和“fun2”指

定不同的绘图函数分别绘制两种去曲线。

例如:

x=0:0.01:5;

y=exp(x);

plotyy(x,y,x,y,'semilogx','plot')

(4)复数数据

当绘制数据为复数时,使用函数plot()绘制图形,根据其不同调用方式会有两种不同的情况。

?plot(x,y)这种方式下,不论参数x和y哪个是复数,都将忽略掉虚部数据,

只绘制该复数的,实部数据其余用法和绘制一般实数数据相同。

?plot(z)用这种方式绘制复数z的图形时,会以复数的实部为横坐标,虚部

为纵坐标,绘制实部和虚部的关系曲线。

例如:

t=0:0.1:2*pi;

x=sin(t);y=cos(t);

z=x+i*y;

subplot(1,2,1),plot(t,z),grid on

subplot(1,2,2),plot(z),grid on

二维图形处理

在MATLAB中图形标注函数的调用方式如下:

title(图形名称)

xlabel(x轴说明)

ylabel(y轴说明)

text(x,y,图形说明)

legend(图例1,图例2………….)

例如:

t=0:0.1:2*pi;

x=sin(t);y=cos(t);

z=x+i*y;

subplot(1,2,1),plot(t,z),grid on

subplot(1,2,2),plot(z),grid on

二维图形处理

1.图形标注

在MATLAB中图形标注函数的调用方式如下:

(1)title(图形名称)

(2)xlabel(x轴说明)

(3)ylabel(y轴说明)

(4)text(x,y,图形说明)

(5)gtext()添加文本说明

(6)legend(图例1,图例2………….)

例如:

x=(0:0.1:2*pi)';

y1=2*exp(-0.5*x)*[1,-1];

y2=2*exp(-0.5*x).*sin(2*pi*x);

x1=(0:12)/2;

y3=2*exp(-0.5*x1).*sin(2*pi*x1);

plot(x,y1,'g',x,y2,'b--',x1,y3,'rp')

title('曲线及其包络线')

xlabel('变量x');

ylabel('变量y');

text(3.2,0.5,'包络线');

text(0.5,0.5,'曲线y')

text(1.4,0.15,'离散数据点')

legend('包络线','曲线','离散数据点')

3.坐标控制

可以利用函数axis()对坐标系重新设定。该函数的调用格式为

axis(xmin,xmax,ymin,ymax,zmin,zmax)

函数axis()功能丰富,通常还有以下几种用法:

axis equal 纵、横坐标轴采用等长刻度

axis square 产生正方形坐标系(默认为矩形)

axis auto 使用默认设置。

axis off 取消坐标轴

axis on 显示坐标轴

hold on保持原有图形

grid on 画网格线

box on加边框

例如:

x=(0:0.1:2*pi)';

y1=2*exp(-0.5*x)*[1,-1];

y2=2*exp(-0.5*5).*sin(2*pi*x);

x1=(0:12)/2;

y3=2*exp(-0.5*x1).*sin(2*pi*x1);

plot(x,y1,'g:')

hold on

plot(x,y2,'b--');

plot(x1,y3,'rp');

grid on;

box off

hold off;

图形的分割

subplot(m,n,p) 说明:当前图形窗口分成m行n列个绘图区

用户可以通过函数get()和set()获取和设置坐标轴对象的相关属性值。实际上,函数get()

和set()可以获取和设置所有句柄图形对象的属性值,它们的一般调用格式:

属性值=get(句柄,属性)

set(句柄,属性1,属性值,属性2,属性值2,……)

三维图形

建立三维图形的基本函数

plot3()与plot()十分相似,其调用格式如下:

plot3(x1,y1,z1,选项,x2,y2,z2,选项,….xn,yn,zn,选项n)

x,y,z分别为第一维到第三维数据,可以是向量也可以是矩阵,但必须尺度相等,选项是设置线型、颜色、数据点标记的字符串。

t=-pi:pi/200:8*pi;

h=figure(1)

set(h,'color',[1,1,1])

subplot(1,2,1),plot3(cos(t),sin(t),t,'b-')

subplot(1,2,2),plot3(sin(t),cos(t),t,'.')

mesh()建立网格图的常用函数。特殊网格图的函数:meshc()和meshz()

绘制二元函数的网格图。hidde on/off 控制网格图是否显示被遮住的部分

z=

[x,y]=meshgrid(-8:0.5:8,-10:0.5:10);

R=sqrt(x.^2+y.^2)+eps;

z=sin(R)./R;

mesh(x,y,z)

建立三维曲面图的常用函数是surf(),还有两个类似的函数surfc()和surfl()。绘制球面的函数是sphere(),其调用格式为:

sphere(n)或[x,y,z]=sphere(n)

subplot(2,2,1),sphere(4);

title('n=4'),axis equal

subplot(2,2,2),sphere(6);

title('n=6'),axis equal

subplot(2,2,3),sphere(20);

title('n=20'),axis equal

subplot(2,2,4),sphere50);

title('n=50'),axis equal

绘制柱面的函数是cylinder(),该函数的调用格式为

cylinder(R,n)或[x,y,z]=cylinder(R,n)

函数surf()

surf(x,y,z,c)

例如:

[x,y]=meshgrid(-8:0.5:8,-10:0.5:10);

R=sqrt(x.^2+y.^2)+eps;

z=sin(R)./R

surf(x,y,z)

colorbar

shading interp

colorbar 在三维曲线图旁绘制一个可以指示高度的彩色条,使三维曲面的可读性更强.。shading flat 去掉个连接处的线条,平滑当前图形的颜色。

shading interp 去掉了连接线条,在各片之间使用颜色插值,使得片与片之间均匀过度shading faceted 默认值,带有连接线条的曲面。

bar,bar3,barh 和bar3h,其中bar 和bar3 分别用来绘制二维和三维竖直方图,barh 和b ar3h 分

别用来绘制二维和三维水平直方图,调用格式是:

bar(x,y) 其中x 必须单调递增或递减,y 为n m× 矩阵,可视化结果为m 组,每

组n 个垂直柱,也就是把y 的行画在一起,同一列的数据用相同的颜色表示;

bar(x,y,width) (或bar(y,width))指定每个直方条的宽度,如width>1,则直方条会重

叠,默认值为width=0.8;

bar(…,’grouped’) 使同一组直方条紧紧靠在一起;

bar(…,’stack’) 把同一组数据描述在一个直方条上。

y=[3,8,2;8,9,2;8,3,3;2,5,6;9,5,1];

subplot(1,2,1),bar(y,'stack')

subplot(1,2,2),bar3(y,'group')

线性等分命令linspace(a,b,n) a、b分别为等差数列的初值和终止,n为b-a的节点数(含端点)n默认为100

例如:设矩阵

371

419

265

a

??

?

=

?

?

??

,求sin(a)

>> a=[3 7 1;4 1 9;2 6 5];sina=funm(a,@sin)

矩阵运算:

[V,D]=cdf2rdf(V,D) 将将复数对角矩阵转化为两个实数对角矩阵

balance(A) 将矩阵A进行缩放以提高其特征值的精度

det(A) 求矩阵的行列式

eig(A) 求矩阵A的特征值和特征向量

[V,D]=eig(A) 求矩阵A的特征向量矩阵(V)和特征值对角矩阵(D)

expm(A) 矩阵指数函数(e)

funm(A)矩阵通用函数函数funm

格式 F = funm(A,fun) %A为方阵,计算由fun指定的A的矩阵函数,fun可以是任意基本函数,

如sin、cos等等,例如:funm(A, ’exp’)=expm(A)。

[F,esterr] = funm(A,fun) %esterr为结果所产生的相对误差的估计值

inv(A) 求矩阵A的逆

logm(A) 矩阵的对数运算

lscov(A,y,V) 已知数据的协方差矩阵(V),求线性方程组的最小二乘解

lsqnonneg(A,y) 求线性方程组的非负最小二乘解

minres(A,y) 利用最小残差求线性方程组的解

null(A) 求A的零空间

orth(A) 求A的正交矩阵

planerot(x) 对X进行平面旋转

poly(A) 求A的特征多项式

po lyeig(A0,A1,…..) 多项式的特征值解

rank(A) 利用奇异值分解求A的秩

rref(A) 将矩阵A变化为行阶梯型矩阵

rsf2csf(A) 将A由实数对角矩阵转化为复数对角矩阵

sqrtm(A) 求矩阵A的平方根

subspace(A,B)求两个子空间A和B之间的角度

blkdiag(a0,a1,a2….) 以输入参数为对角元素生成对角矩阵

company(P) 求多项式的伴随矩阵

eye(r,c) 产生r行,c列的单位矩阵

gallery 生成一些列的测试矩阵(50个以上)

magic(n) 生成n阶的魔幻矩阵

ones(r,c) 生成r行,n列的单位矩阵

rand(r,c) 生成r行,n列的随机矩阵(元素的值介于0和1之间)randn(r,s) 生成r行,n列的零均值和单位方差的正态分布的随机矩阵zeros(r,s) 生成r行,n列的全0矩阵

MATLAB绘图函数

一、MA TLAB通用图形函数命令 有关命令行环境的一些操作: (1) clc 擦去一页命令窗口,光标回屏幕左上角 (2) clear 从工作空间清除所有变量 (3) clf 清除图形窗口内容 命令1 figure 功能创建一个新的图形对象。图形对象为在屏幕上单独的窗口,在窗口中可以输出图形。 用法figure 用缺省的属性值创建一个新的图形对象。 命令2 subplot 功能生成与控制多个坐标轴。把当前图形窗口分隔成几个矩形部分,不同的部分是按行方向以数字进行标号的。每一部分有一坐标轴,后面的图形输出于当前的部分中。 用法subplot(m,n,p) 将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一坐标轴。则新的坐标轴成为当前坐标轴。若p为一向量,则创建一坐标轴,包含所有罗列在p 中的小窗口。 命令3 hold 功能保持当前图形窗口中的图形。该命令是决定是否在当前坐标轴中只能增加新的图形对象还是覆盖原有图形对象。 用法hold on 保留当前图形与当前坐标轴的属性值,后面的图形命令只能在当前存在的坐标轴中增加图形。但是,当新图形的数据范围超出了当前坐标轴的范围,则命令会自动地改变坐标轴的范围,以适应新图形。 hold off 在画新图形之前,重新设置坐标轴的属性为缺省值。 命令4 axis 功能坐标轴的刻度与外在显示 用法axis([xmin xmax ymin ymax]) 设置当前坐标轴的x-轴与y-轴的范围。 命令5 close 功能关闭指定的图形窗口。 用法close 关闭当前的图形窗口。 二、MA TLAB绘图参数控制 命令1 plot 功能这是最基本、最常用的绘图函数,用于绘制线性二维图。有多条曲线时,循环使用由坐标轴颜色顺序属性定义的颜色,以区别不同的曲线;之后再循环使用由坐标轴线型顺序属性定义的线型,以区别不同的曲线。

matlab课程设计题目

课题一: 连续时间信号和系统时域分析及MATLAB实现 课题要求: 深入研究连续时间信号和系统时域分析的理论知识。利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,实现连续时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB实现常用连续时间信号的时域波形(通过改变参数,分析其时域特性)。 1、单位阶跃信号, 2、单位冲激信号, 3、正弦信号, 4、实指数信号, 5、虚指数信号, 6、复指数信号。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘, 4、微分, 5、积分 三、用MATLAB实现信号的时域变换(参数变化,分析波形变化) 1、反转, 2、使移(超时,延时), 3、展缩, 4、倒相, 5、综合变化 四、用MATLAB实现信号简单的时域分解 1、信号的交直流分解, 2、信号的奇偶分解 五、用MATLAB实现连续时间系统的卷积积分的仿真波形 给出几个典型例子,对每个例子,要求画出对应波形。 六、用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形。 给出几个典型例子,四种调用格式。 七、利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题二: 离散时间信号和系统时域分析及MATLAB实现。 课题要求: 深入研究离散时间信号和系统时域分析的理论知识。利用MATLAB强大的图

形处理功能、符号运算功能以及数值计算功能,实现离散时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB绘制常用信号的时域波形(通过改变参数分析其时域特性) 1、单位序列, 2、单位阶跃序列, 3、正弦序列, 4、离散时间实指数序列, 5、离散时间虚指数序列, 6、离散时间复指数序列。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘。 三、用MATLAB实现信号的时域变换(参数变化,分析波形的变化) 1、反转, 2、时移(超时,延时), 3、展缩, 4、倒相。 四、用MATLAB实现离散时间系统卷积和仿真波形 给出几个典型例子,对每个例子要求画出e(k),h(k),e(i),h(i),h(-i),Rzs(k)波形。 五、用MATLAB实现离散时间系统的单位响应,阶跃响应的仿真波形 给出几个典型例子,四中调用格式。 六、用MATLAB实现离散时间系统对实指数序列信号的零状态响应的仿真波形 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题三: 连续时间信号傅里叶级数分析及MATLAB实现。 课题要求: 深入研究连续时间信号傅里叶级数分析的理论知识,利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。 课题内容: 一、用MATLAB实现周期信号的傅里叶级数分解与综合 以周期矩形波信号为例,绘出包含不同谐波次数的合成波形,观察合成波形与原矩形 波形之间的关系及吉布斯现象。

实验三 MATLAB绘图(含实验报告)

实验三 MATLAB 绘图 一、实验目的 1.掌握二维图形的绘制。 2.掌握图形的标注 3.了解三维曲线和曲面图形的绘制。 二、实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 设计提示 1.Matlab 允许在一个图形中画多条曲线:plot(x1,y1,x2,y2,……) 指令绘制y 1 = f 1(x 1), y 2 = f 2 (x 2 )等多条曲线。Matlab 自动给这些曲线以不同颜色。标注可用text 函数。 2.绘图时可以考虑极坐标和直角坐标的转换。 3.三维曲线绘图函数为plot3,注意参考帮助中的示例。 三、实验内容 1.生成1×10 维的随机数向量a ,分别用红、黄、蓝、绿色绘出其连线图、 杆图、阶梯图和条形图,并分别标出标题“连线图”、“杆图”、“阶梯图”、“条形图”。 2、绘制函数曲线,要求写出程序代码。 (1) 在区间[0:2π]均匀的取50个点,构成向量t (2) 在同一窗口绘制曲线y1=sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲 线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号。 (3) 分别在靠近相应的曲线处标注其函数表达式。 3.将图形窗口分成两个绘图区域,分别绘制出函数: ???+-=+=1 352221x x y x y 在[0,3]区间上的曲线,并利用axis 调整轴刻度纵坐标刻度,使1y 在[0,12] 区间上,2y 在[-2,1.5]区间上。 4.用mesh 或surf 函数,绘制下面方程所表示的三维空间曲面,x 和y 的

取值范围设为[-3,3]。 10102 2y x z +-= 思考题: 1. 编写一个mcircle(r)函数,调用该函数时,根据给定的半径r ,以原点 为圆心,画一个如图所示的红色空心圆。(图例半径r=5);左图参考 polar 函数的用法,右图绘制圆形的参数方程为x=sin (t ),y=cos (t )。其中,t 的区间为0~2*pi ,步长为0.1。 2.(1)绘一个圆柱螺旋线(形似弹簧)图。圆柱截面直径为10,高度为5, 每圈上升高度为1。如左图所示。 (2)利用(1)的结果,对程序做少许修改,得到如右图所示图形。

MATLAB结课论文设计.

MATLAB程序设计(论文) 基于MATLAB实现语音信号的去噪 院(系)名称电子与信息工程学院 专业班级通信工程 学号 学生姓名 任课教师

论文任务

摘要 滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR 滤波器是滤波器设计的重要组成部分。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用MATLAB 作为编程工具进行计算机实现。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。 关键词数字滤波器 MATLAB 窗函数法巴特沃斯切比雪夫双线性变换

目录 第1章绪论 (1) 1.1数字信号处理的意义 (1) 1.2语音去噪设计要求 (2) 第2章语音去噪方案设计 (3) 2.1语音去噪的应用意义 (3) 2.2 语音去噪设计框图 (3) 2.3设计原理 (4) 第3章程序分析 (5) 3.1 语音去噪采样过程 (5) 3.2 语音去噪方案 (6) 第 4 章总结 (8) 参考文献 (9) 附录 (10)

第1章绪论 1.1数字信号处理的意义 数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。 数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应( IIR,Infinite Impulse Response)滤波器。 FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H (z)在处收敛,极点全部在z = 0处(因果系统),因而只能用较高的阶数达到高的选择性。FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。FIR 数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐。 IIR滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。 滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。随着MATLAB软

MATLAB绘图功能大全

MATLAB绘图功能大全-CAL-FENGHAI.-(YICAI)-Company One 1

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基木参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一、二维绘图 二维图形是将平而坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 (一)绘制二维曲线的基木函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基木用法 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式

plot(x,y)其中x,y为长度相同的向量,存储x坐标和y坐标。 例52在[0,2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令? ? x=0:pi/100:2*pi; ? y=2*exp*x).*sin(2*pi*x); ? plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输岀曲线: ?t=-pi:pi/100:pi; ? x=t.*cos(3*t); ? y=t.*sin(t).*sin(t); ? plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 ■ 以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基木的用法。实际应用中还有一些变化。 2.含多个输入参数的plot函数

MATLAB绘图总结

一、二维数据曲线图 1、MATLAB 最常用的画二维图形的命令是plot ,plot 函数的基本调用格式为:plot(x,y) 其中x 和y 为长度相同的向量,分别用于存储x 坐标和y 坐标数据。 例1:在[0,2 ]画)sin(x 。 生成的图形如下图1所示: 1 2 3 4 5 6 7 -1-0.8-0.6-0.4-0.200.20.40.60.81 图1 说明: (1)plot 函数的输入参数是矩阵形式时 A 、 当x 是向量,y 是有一维与x 同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y 矩阵的另一维数,x 被作为这些曲线共同的横坐标。 B 、 当x,y 是同维矩阵时,则以x,y 对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 C 、 对只包含一个输入参数的plot 函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数;当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。 (2)含多个输入参数的plot 函数 调用格式为: plot(x1,y1,x2,y2,…,xn,yn) A 、当输入参数都为向量时,x1和y1,x2和y2,…,xn 和yn 分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。 B 、当输入参数有矩阵形式时,配对的x,y 按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 例2:如下所示的程序: x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100);

matlab课程论文

Matlab语言与应用课程作业MATLAB Simulink在电路暂态分析中的应用学生姓名陈志豪所在专业轮机工程(陆上)所在班级陆上1102 指导教师徐国保(博士) MATLAB Simulink在电路暂态分析中的应用(广东海洋大学轮机工程(陆上)1102 陈志豪)摘要本文通过引入举了实际的例子,简要介绍了Matlab语言在电工学电路暂态分析中的应用;并先使用普通方法分析暂态电路,然后再用Matlab Simulink来仿真暂态电路;通过Matlab Simulink 仿真技术,可以使得暂态分析可视化。关键词:MATLAB;Simulink仿真;电工学;暂态分析1,引言MATLAB是Matrix Laboratory的缩写,事实上MATLAB最初就是纯粹的矩阵计算软件。如今MATLAB既表示一种交互式的数值计算软件,又表示一门高级科学计算语言,是一套功能十分强大的工程计算及数据分析软件,其应用范围涵盖了数学、工业技术、电子科学、医疗卫生、建筑、金融、数字图像处理等各个领域。它把计算、图示 和编程集成到一个易用的交互式环境中,用大家熟悉的数学表达式来描述问题和求解方法,从而使许多用C 或FORTRAN实现起来十分复杂和费时的问题用MATLAB可以轻松地解决。许多工程师和研究人员发现,MATIAB能迅速测试其构思,综合评测系统性能,并能借此快速设计出更多的解决方案,达到更高的技术要求。[1]MATLAB因为提供了非常方便的绘图功能和强大的图形图像处理能力,以及强大的仿真技术,所以收到了广泛的欢迎。2,问题背景《电工学》是一门非电专业的技术基础课,通过本课程的学习,学生掌握电工技术的基本理论、基本定律、基本概念及基本分析方法和理论的实际应用。它的内容广泛,理 论性和系统性也很强。采用传统的教学模式,往往只能在理论上进行论述、推导、验证和证明,并借助 一些公式来阐述问题,很难给学生较直观的印象[2],教学效果不理想。若把MATLAB应用到学习中,利用其强大的数值计算功能、绘图功能、可视化的仿真功能,可以很好的弥补传统教学的不足,使一些不 容易理解的抽象、复杂的变化过程,通过MATLAB仿真比较直观的的显示出来,便于学生理解和应用。 同时,可以随机修改电路和参数,即时观察输出结果,从而加深学生对电路本质的理解,全面掌握教学 内容[3]。下面通过实例探讨MATLAB SIMULINK在电工学暂态分析中的应用。图1所示电路是一个一阶电路。已知R=20Ω,U=6V,U=10V,C=O.02F。假s0 设在t=O时开关S从闭合在a端换路闭合到b端,求t>O时,电容电压u和电 c 容电流i。c图1,一阶电路的电路图 3,理论推导根据一阶电路暂态分析的三要素法有:(1)确定初始值由换路前的电路求得u(0)=U=10V C0再由换路后的电路求得 (??)??????????????????i(0)===?0.2A C??????(2)确定稳态值有电路图易知:i(∞)=0A Cu(∞)=6V C (3)确定时间常数τ=RC =20×0.02=0.4s (4),求出待求响应????????i= i(∞)+[ i(0)? i (∞)]e =?0.2 e ????.??CCCC????????u= u(∞)+[ u(0) ?uC(∞)] e =6+4e ????.??CCC运用Matlab 编程画出ic和u波形图; C 其代码如下所示:subplot(1,2,1); fplot(‘6+4*exp(-x/0.4)’,[0,6]); subplot(1,2,2); fplot(‘-0.2*exp(-x/0.4)’,[0,6]); 其运行结果图2所示 图2,电容电压u和电容电流ic波形图C4,应用MATLAB进行仿真图1电路对应的仿

Matlab作图函数的总结与分析

高等理科教育2005年第6期(总第64期)Matlab作图函数的总结与分析+ 黄琼湘那斯尔江?吐尔逊 (tfi疆大学数学与系统科学学院,新疆乌鲁木齐830046) 摘要Matlab(MATrixLABoratory的简称)是CleverMoler博士用Fortran语言开发的科学计算工具。它已成为科学研究、工程计算、应用开发的重要工具。国外已将它作为理工科大学的必修课程,国内各大学也开始开设这门课程。Matlab有强大的作图功能,有兴趣的读者可参考文献【卜4’。本文对Matlab的作图函数进行分析和总结,以供教学参考和学生学习之用。 关键词Matlab数据可视化作图函数 中图分类号G642.0文献标识码A 一、Matl如作图函数的总结 Matlab提供了丰富的作图函数,有100个之多。在教学和学习中显得有点杂乱。我们先对它们进行总结和分类,并提炼出它们的共性和特性。 Matlab的作图函数从视角的维数上分有三类:一维作图函数、二维作图函数和三维作图函数。它们的代表分别是line、plot和plot3等函数。从类型上分大致有四类:通用作图函数(如plot函数等);专业作图函数(如contour函数、quiver函数等);动画制作函数(如movie、comet3等函数);图形修饰函数(如view等函数)。 Matlab所有的作图函数都可以通过查帮助获得它的功能和用法。这里我们把作图函数按类型分类,列出一些主要和常用的作图函数(见表1),以抓住重点。 作图函数虽然功能不同,但它们的调用格式是一致的。我们用GraphF来表示一般的作图函数,它们的调用格式如下: 1.GraphF(X,Y,S) 这是一、二维函数的作图格式。x和Y表示图形的数据点,s表示图形修饰参数组(可以缺省)。当x,Y都是顶点坐标时,GraphF(X,Y,S)画出以x,Y为端点,s为参数的线;当x是一组顶点坐标,而Y对应于X的函数值时,GraphF(X,Y,S)画出函数Y的二维图形。 2.GraphF(X,Y,Z,S) 这是三维函数的作图格式。z是x和Y的函数。x,Y以二维坐标形式表示函数值z的作图区域D,s表示图形修饰参数组(可以缺省)。GraphF(x,Y,Z,S)画出定义域为D的函数z的三维图形。 值得注意的是,Matlab的作图函数总是描绘数据点(X,Y)(在平面上)或(x,Y,z)(在空间中)的图形。前者视为Y的函数,而后者视为z的函数。函数GraphF在作图前数据点必须事先给定,在作图时函数GraphF将各数据点用光滑的曲线连接成图形。另外,X,Y,Z还 ÷收稿日期2004—02—19 资助项目新疆大学校基金“应用软件程序设计”重点课程建设项目资助 作者简介黄琼湘(1958)男,湖南衡阳人,教授,主要从事组合数学与图论、计算机算法研究

matlab课程论文要求

matlab课程论文要求 一、时间安排 (一)2016年X月X日之前必须提交纸质版(时间待定,另行通知,尽早完成,以免影响其他科目的复习考试)。 (二)电子版统一写清楚学号(学号在前)+姓名+专业发送给学委。打包文件夹发送给我,不接受单独发给我的。 二、选题 (一)选题要紧密结合本学科专业的教学科研和MATLAB,符合专业培养目标的要求。 (二)论文一般为一人一题,严格控制与往年的重复率。 三、成绩评定 平时成绩(0.3)+课程论文(0.7)=最终成绩。 四、论文写作规范要求 (一)封面:封面要使用统一格式。 (二)目录:“目录”两字黑体小二号、居中,“目录”两字间空四格、与正文空一行。各部分名为宋体小四号字,各小部分名间有缩进。 (三)题目:题目要对论文的内容有高度的概括性,简明、易读,字数应在20个字以内,论文题目用黑体三号字。 (四)署名:论文署名的顺序为:专业学号学生姓名指导老师姓名,用宋体小四号字。可用以下表示: 专业:XXXXX 学号:XXXXX 学生姓名:XXXXX 指导老师姓名:XXXX (五)内容摘要:中文内容摘应简要说明所研究的内容、目的、实验方法、主要成果和特色,一般为200-300字,用宋体小四号字,其中“内容摘要”四个字加粗。 (六)关键词:一般为3-6个,用分号隔开,用宋体小四号字,其中“关键词”三个字加粗。 (七)正文:正文要符合一般学术论文的写作规范,统一用宋体小四号字,行距为1.5倍。字数一般要求为不得少于5000字。

内容要理论联系实际,涉及到他人的观点、统计数据或计算公式的要注明出处(引注),涉及计算内容的数据要求准确。标题序号从大到小的顺序为:“1”“1.1”“1.1.1”……。 (八)注释:论文中所引用文献按学术论文规范注明出处,注序要与文中提及的序号一致。注释方法参见参考文献顺序。 (九)参考文献:论文后要标注参考文献和附录,参考文献按照以下格式排列: 1.专著、论文集、学位论文、报告 [序号]主要责任者.文献题名[文献类型标识].出版地:出版者,出版年.起止页码。 [1]刘国钧,陈绍业,王凤.图书馆目录[M].北京:高等教育出版社,1957.10-12. [2]辛希孟.信息技术与信息服务国际研讨会论文集:A集[C].北京:中国社会科学出版社,1994.12-13. [3] 查正军.《基于机器学习方法的视觉信息标注研究》.[D].北京.中国科技大学.2010年.32-35 2.期刊文章 [序号]主要责任者.文献题名[J].刊名,年卷(期):起止页码. [1]何龄修.读顾城《南明史》[J].中国史研究,1998(3):12-13. [2]金显贸,王昌长,王忠东等.一种用于在线检测局部放电的数字滤波技术 [J].清华大学学报(自然科学版),1993(4):12-13. 3.电子文献 [序号]主要责任者.电子文献题名[电子文献及载体类型标识] .电子文献的出处或可获得地址,发表或更新日期/引用日期(任选). [1]王明亮.关于中国学术期刊标准化数据库系统工程的进展[EB/OL]. https://www.sodocs.net/doc/9711687253.html,/pub/wml.txt/980810-2.html,1998-08-16/1998-10-04. [2]万锦坤.中国大学学报论文文摘(1983-1993).英文版[DB/CD].北京:中国大百科全书出版社,1996.

matlab程序设计与应用(第二版)第三章部分课后答案

第三章1. (1)A=eye(3) (2)A=100+100*rand(5,6) (3)A=1+sqrt(0.2)*randn(10,50) (4)B=ones(size(A)) (5)A+30*eye(size(A)) (6)B=diag(diag(A)) 2. B=rot90(A) C=rot90(A,-1) 3. B=inv(A) ;A的逆矩阵 C=det(A) ;A的行列式的值 D=A*B E=B*A D=E 因此A与A-1是互逆的。 4. A=[4 2 -1;3 -1 2;12 3 0]; b=[2;10;8]; x=inv(A)*b x = -6.0000 26.6667 27.3333 5. (1) diag(A) ;主对角线元素 ans = 1 1 5 9 triu(A) ;上三角阵

ans = 1 -1 2 3 0 1 -4 2 0 0 5 2 0 0 0 9 tril(A) ;下三角阵 ans = 1 0 0 0 5 1 0 0 3 0 5 0 11 15 0 9 rank(A) ;秩 ans = 4 norm(A) ;范数 ans = 21.3005 cond(A) ;条件数 ans = 11.1739 trace(A) ;迹 ans = 16 (2)略 6. A=[1 1 0.5;1 1 0.25;0.5 0.25 2] A = 1.0000 1.0000 0.5000 1.0000 1.0000 0.2500 0.5000 0.2500 2.0000

[V,D]=eig(A) V = 0.7212 0.4443 0.5315 -0.6863 0.5621 0.4615 -0.0937 -0.6976 0.7103 D = -0.0166 0 0 0 1.4801 0 0 0 2.5365

MATLAB课程论文

基于MATLAB在自动控制频域中稳定性分析的应用 学院:物信学院 班级:08电信二班 姓名:王军祥 学号:281060217

基于MATLAB在自动控制频域中稳定性分析的应用 摘要:自动控制系统主要利用MATLAB高级语言对其进行计算机分析。 MATLAB是一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形绘制集于一体,构成了一个方便的、界面友好的用户环境。本文主要介绍了利用MATLAB在自动控制中对频域中系统稳定性的判定,通过MATLAB建立某一系统的模型,并分析该系统的性能。根据响应曲线判断系统的稳定性,当系统的性能不能满足所要求的性能指标时,通过调整系统参数和增添校正装置来改善系统性能并展示方便灵活的动态仿真结果。 关键词:自动控制系统;稳定性;频域分析;频率响应;稳定裕度 引言 频域分析法是应用频域特性研究线性控制系统的一种经典方法,采用这种方法可以直观的表达出系统的频率特性,利用系统的传递函数绘制系统的bode 图、nyquist曲线和nichols图,然后进行系统稳定性的判定,这样可以很明确的判定系统频域的稳定性。频域分析法是自动控制领域中应用又一种数学工具———频率特性来研究系统控制过程性能,即稳定性、快速性及稳态精度的一种方法。这种方法不必直接求解系统的微分方程,而是间接的运用系统的开环频率特性曲线,分析闭环系统的响应,因此它是一种图解的方法。本文介绍了应用MATLAB在bode图、nyquist曲线和nichols图等控制系统频域分析中的主要方法,通过具体实例叙述了MATLAB在频域分析中的应用过程。频域分析里主要用到三种曲线(或叫图):Bode图、Nyquist曲线图和 Nichols(尼柯尔斯)曲线图。这三种曲线就是频率分析的三种工具。Bode图可以用于分析相角稳定裕度、 -穿越频率、带宽、扰动抑制及其稳定性幅(或模)值稳定裕度、剪切频率、π 等,所以Bode图在频域分析里占有重要的地位。Nyquist与Nichols曲线图在频域分析里也很有用。本文中最重要的函数命令有bode、nyquist、pade、nichols、margin等。 一.频域分析法的基础 1.有关频率分析的几个概念 (1)频率响应 当正弦函数信号作用于线性系统时,系统稳定后输出的稳态分量仍然是同频率的正弦信号,这种过程叫做系统的频率响应。

实验5 Matlab绘图操作实验报告

Tutorial 5 实验报告 实验名称:Matlab 绘图操作 实验目的: 1、 掌握绘制二维图形的常用函数; 2、 掌握绘制三维图形的常用函数; 3、 掌握绘制图形的辅助操作。 实验内容: 1. 设sin .cos x y x x ?? =+ ??+?? 23051,在x=0~2π区间取101点,绘制函数的曲线。 2. 已知: y x =21,cos()y x =22,y y y =?312,完成下列操作: (1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线; (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x y x x ≤=??+>??0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888, 绘制函数z =的三种三维曲面图。 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?+>? ==??+

8. 在同一坐标轴中绘制下列两条曲线。 (1).y x =-205 (2)sin()cos ,sin()sin x t t t y t t π=?≤≤? =?303 实验结果: 1. 2. (1)

(2)

(3)

matlab结课论文

山西大同大学matlab课程结课作业MATLAB程序应用 姓名: 课程序号: 2 班级: 学号: 2013年12月

1.实验内容:已知!123n n =????? ,编写一个程序求满足100!10n ≤的 最大的n 值以及此时!n 的值。 function n n=2;m=1; while m<=10^100 m=m.*n;n=n+1; end m=m/(n-1);n=n-2; m n m = 1.7112e+098 n =69 2.设)15113111191715131 1(22 +--++--+=π,试根据公式编出计算pi 的Mat lab 主程序文件,pi 的精度为0.00001。 程序: k=0;n=1;b=0;a=0; while abs((pi-a))>0.00001 a=2*sqrt(2)*k; k=( bcos( *pi/2)+sin(b*pi/2))/n+k; n=n+2; b=b+1; end a 输出a=3.141602572083633 ; a-pi= 9.918493839577991e-006 3.有两个矩阵A 和B 如下:????????????---=771175420132861-1A ,????????????------=0162310013125673B , 将A 中所有等于-1的元素改为-2,将B 中所有小于0的元素改为1,然后将B 中等于0的元素的值改为A 的相应位置元素的值。请用Matlab 函数文件实现上述运算。

clear; clc; A=[1 -1 6 8;2 3 -1 0;-2 4 5 7;1 -1 7 7]; B=[-3 -7 6 -5;-2 1 3 -1;0 0 1 3;2 6 -1 0]; C=A;A(A==-1)=-2;U=A; D=B;B(B<0)=1;V=B; A=C;B=D;[i,j]=find(B==0);A(i,j)=0;W=A; A=C;B=D; A,B,W,U,V %用函数文件实现矩阵中元素的变换。 %A、B为输入变量。 %U、V、W分别存放A、B中间变换结果。 ; 4.用matlab主程序文件产生动画:呈现一小圆(半径为1)在一大圆(半径为3)的圆周外部滚动的动画,要求连续滚动20周。 clea close;clc;r; axis([-6 6 -6 6],'equal','manual');hold on; ezplot('x^2+y^2-9'); h=ezplot('x^2+y^2-1'); x=get(h,'xdata'); y=get(h,'ydata'); for t=1:7200 set(h,'xdata',x+4*cosd(t),'ydata',y+4*sind(t)); drawnow; end

MATLAB语言课程论文

《MATLAB语言》课程论文 基于MATLAB在高等数学基础部分中 的应用

基于MATLAB的控制系统分析 摘要:运用MATLAB软件处理和仿真,分析所建立的控制系统模型的可行性。利用MATLAB平台分析系统传递函数的稳定性,利用MATLAB软件得出系统的单位阶跃响应和脉冲响应,分析说明MATLAB在自动控制系统方面的应用。 关键词:控制系统MA TLAB 稳定性Simulink 0引言 自动控制技术已经广泛应用于工业、农业、交通运输业、航空及航天业等众多产业部门,极大地提高了社会劳动生产率,改善了人们的劳动条件,丰富与提高了人们的生活水平。在当今的社会生活中,自动化装置无所不在,为人类文明进步做出了重要贡献。随着科学技术的发展,控制系统变得越来越复杂,控制理论和系统的分析如果仅靠人工计算已经远远不能满足学习和研究的要求了。MATLAB是高性能的数值计算和可视化软件,他集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便、界面友好的用户环境。MATLAB的出现给控制系统的分析提供了极大的方便。 MATLAB(Matix Laboratory,即“矩阵实验室”)是美国MathWorks公司开发的用于概念设计、算法开发、建模仿真、实时实现的理想的集成环境。从1984年MATLAB诞生到现在,它已经集成了许多工具箱,例如控制系统工具箱(Control System Toolbox)、Simulink工具箱等。为此,MATLAB软件在控制工程领域已获得了广泛的应用,使得MATLAB成为控制系统仿真分析的必要工具 1系统的稳定性分析 稳定是控制系统的重要性能,也是系统能够正常运行的首要条件。在分析控制系统时,首先遇到的问题就是系统的稳定性。对线性系统来说,如果一个系统的所有几点都位于左半s平面,则该系统是稳定的。对于离散系统来说,如果一个系统的全部极点都在单位圆内,则该系统可以被认为是稳定的。由此可见,线性系统的稳定性完全取决于系统的极点在根平面上的位置。 判断一个线性系统稳定性的一种最有效的方法是直接求出系统所用的极

MATLAB程序设计基础

第三章MATLAB程序设计基础 chapter 3: Foundation of MATLAB program design 一、数据及数据文件(Data and Data file) 1. 数据类型:(Data mode)为适应各种不同计算和处理的需求,MATLAB提供了多种数据类型,主要有: 数值数组(Numeric array)— 包括整形(int8,uint8,int16,uint16,int32,uint32)单精度 (signal), 双精度(duble)(MATLAB最常用的变量类型), 稀疏(sparce)数组。按维数分有一维、二维和多维数 组。 Int---Integrate. Uint---Unsigned Integer data 字符数组(Character array):由字符串组成的数组 单元数组(Cell array):用不同类型和大小的数组组成的数组,同 一个元胞数组中各元胞的内容可以不同。 结构数组(Structure array):与单元数组类似,但其数据的组织能 力更强,更富于变化。 Java类(Java class):由JavaAPI或第三方定义的类函数。 函数句柄(Function handle):可以在一个参数列表中传递,并使 用feval运行. 在工作空间浏览器中不同的数据类型有着不同的图标标识。2. 数据文件(Data file) MATLAB支持的各种数据文件(Readable file formats of MATLAB)的主要类型及其存取方法如下述: (1)二进制数据文件:(Binary date file)以.mat为扩展名。是标准的MATLAB数据文件,以二进制编码形式存储。.mat文件可以由MATLAB提供的save和load命令直接存取。 (2)ASCⅡ码数据文件:(ASCⅡcode data file)扩展名为.txt, .dat

MATLAB总结 - 隐函数、符号函数作图

I. 隐函数f(x,y)=0, f(x(t),y(t),z(t))=0; z=f(x,y) ezplot, ezplot3, ezcontour, conctourf, ezpolar, ezmesh, ezmeshc, ezsurf, ezsurfc 1. ezplot:画符号函数图形 ezplot(f):对于显式函数f=f(x),在默认的范围[-pi> syms x y >> ezplot(2*x^4-y^9) 2. ezplot3:三维曲线图 ezplot3(x,y,z):在默认的范围0> syms t >> ezplot3(t*sin(t),t*cos(t),t,[0,20*pi]) 此外,三维曲线的视角可以通过程序命令来控制,也可以手动设置。 3. ezcontour:画符号函数的等高线图 ezcounter(f):画出二元符号函数f=f(x,y)的等高线图。函数f将被显示在默认的平面区域[-2pi

MATLAB课程设计实验体会

课程设计实验体会 学生姓名:李祥胜 学生学号:20120704 专业班级:光信息科学与技术 指导老师:miss Chen 学院:信息工程学院 题目: MATLAB学期实验总结

MATLAB概念及介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB集成环境主要包括五个部分:MATLAB语言、MATLAB工作环境、句柄图形、MATLAB数学函数库和数学建模、小波分析、MATLAB API(App lication Program Interface)。MATLAB语言是以数组为基本数据单位,包括控制流程语句、函数、数据结构、输人输出及面向对象等特点的高级语言。利用SIMULINK对系统进行仿真与分析,在进入虚拟实验环境后,不需要书写代码,只需使用鼠标拖动库中的功能模块并将它们连接起来,再按照实验要求修改各元器件的参数。通过虚拟实验环境建立实验仿真电路模型,可使一些枯燥的电路变得有趣味,复杂的波形变得形象生动,使得各种复杂的能量转换过程比较直观地呈现。 1.1、MATLAB语言特点及优势 1.1.1、语言特点 MATLAB被称为第四代计算机语言,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB 给用户带来的是最直观、最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。 (1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。 (2)运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短,具体运算符见附表。 (3)MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。 (4)语法限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。 (5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

相关主题