Matlab知识点总结

符号积分变换

傅里叶变换及其反变换

1.傅里叶变换 f=f(x)?F=F(w)

syms x w u v

f=sin(x)*exp(-x^2);

F1=fourier(f)

F1 = transform::fourier(sin(x)/exp(x^2), x, -w)

>> f=x;

F2=fourier(f)

F2 = pi*dirac(w, 1)*2*i

>> h=x*exp(-abs(x));F3=fourier(h)

F3 = -(w*4*i)/(w^2 + 1)^2

>> h=x*exp(-abs(x));F3=fourier(h,u)

F3 =-(u*4*i)/(u^2 + 1)^2

2.傅里叶反变换

syms w v x t

g=exp(-abs(x));IF2=ifourier(g)

IF2 = 1/(pi*(t^2 + 1))

拉普拉斯变换及其反变换

1.拉普拉斯变换

syms x s t v

f1=sqrt(t);L1=laplace(f1)

L1 =pi^(1/2)/(2*s^(3/2))

2.拉普拉斯反变换

syms a s t u v x

f=exp(x/s^2);IL1=ilaplace(f)

IL1 =ilaplace(exp(x/s^2), s, t)

Z变换及其反变换

方程的解析解

线性方程组的解析解

包括求解线性方程组和非线性方程组的函数solve(),也有求解常微分方程组的函数dsolve()

L1='x+y+z=10';

L2='3*x+2*y+z=14';

L3='2*x+3*y-z=1'; %L1、L2、L3分别是三个字符串

g=solve(L1,L2,L3)

g =

x: [1x1 sym]

y: [1x1 sym]

z: [1x1 sym] %表明g是一个结构数组,其中每个元素为一

>> g.x %符号类型的量,用如下方法查看方程解的具体值 ans =1

一般求解方法:

L1='x+y+z=10';

L2='3*x+2*y+z=14';

L3='2*x+3*y-z=1';

[x y z]=solve(L1,L2,L3)

x =1

y =2

z =7

线性方程组的解析解

>> f=sym('a*x^2+b*x+c=0');xf=solve(f)

xf =

-(b + (b^2 - 4*a*c)^(1/2))/(2*a)

-(b - (b^2 - 4*a*c)^(1/2))/(2*a)

>>syms y z u v w

eq1=u*y^2+v*z+w;

eq2=y+z+w;

[y z]=solve(eq1,eq2,y,z)

y =

(v + 2*u*w + (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) - w

(v + 2*u*w - (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) - w

z =

-(v + 2*u*w + (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u)

-(v + 2*u*w - (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u)

常微分方程组的解析解

在微分方程组的表达式equ中,大写字母D表示对自变量(设为x)的微分算子:D=d/dx,D2=d2/d2x...微分算子D后面的字母则表示为因变量,即带求解的未知函数。

>> y=dsolve('Dy+a*x=0','x')

y =C2 - (a*x^2)/2

>> y=dsolve('D2y+2*x=2*y','x')

y = x + C4*exp(2^(1/2)*x) + C5/exp(2^(1/2)*x)

>> y=dsolve('D2y+2*x=2*y','y(2)=5','Dy(1)=2','x')

y =x + (exp(2^(1/2)*x)*(6*exp(2^(1/2)) + 2^(1/2)))/(2*exp(2^(1/2))*(exp(2*2^(1/2)) + 1)) - (2^(1/2)*exp(2*2^(1/2))*(exp(2^(1/2)) -

3*2^(1/2)))/(2*exp(2^(1/2)*x)*(exp(2*2^(1/2)) + 1))

MATLAB程序设计

全局变量 global A B C 变量名区分大小写

脚本文件是m文件中最简单的一种输入顿号输出参数,用命令语句可以控制MATLAB命令工作空间的所有数据。

编程计算向量元素的平均值:

x=input('输入向量:x='); %average_1.m计算向量元素的平均值

[m,n]=size(x);

if (m==1|n==1)

average=sum(x)/length(x)

else error('必须输入向量。')

End

如果m文件的第一个可执行语句以function开始,该文件就是函数文件,每一个函数文件都定义一个函数。函数有自己独立的工作空间,它与MATLAB的工作空间区分开。

Function y=average_2(x) %函数average_2(x)用以计算向量元素的平均值

%输入参数x为输入向量,输出参数y为计算的平均值 MATLAB的程序控制结构

For循环一般形式

For 循环控制变量=表达式1:表达式2:表达式3

For x=-2.0:0.25:-0.75

While循环

选择结构:MATLAB中的选择结构语句有if语句、switch语句和try语句 A=[];

for k=1:5

for j=1:5

if k==j

A(k,k)=5;

elseif abs(k-j)==1

A(k,j)=1;

else

A(k,j)=0;

end

end

end

A

结果:A =

5 1 0 0 0

1 5 1 0 0

0 1 5 1 0

0 0 1 5 1

0 0 0 1 5

程序流的控制

1.break语句

终止本层for或while循环,跳转到本层循环语句end的下一条语句。

2.return语句

终止被调用函数的运行,返回到调用函数。

3.pause语句

Pause:暂停程序运行,按任意键继续

Pause(n):程序暂停运行n秒后继续。

Pause on/off:允许/禁止其后的程序暂停

4.continue语句

在for循环或while循环中遇到该语句,将跳过其后的循环体语句,进行下一次循环。

数据的输入与输出

键盘输入语句 input

x=input(‘prompt’);

x=input(‘prompt’,’s’) %不至于将输入的数字看成是数值型数据。 屏幕输出语句disp(x)

M数据文件的存储/加载(save/load)

格式化文本文件的存储/读取(fprintf/fxcanf)

二进制数据文件的存储/读取(fwrite/fread)

数据文件行存储/读取(fgetl/fgets)

MATLAB文件操作

MATLAB数据可视化

使用函数figure来建立图形窗口,最简单的调用方式figure

Close关闭当前图形窗口

基本二维图形绘制

(1)plot:x轴和y轴均为线性刻度

(2)Loglog:x轴和y轴均为对数刻度

(3)Semilogx:x为对数刻度,y为线性刻度

(4)Semilogy:x为线性刻度,y为对数刻度

(5)Plotyy:绘制双纵坐标图形,绘制两条具有不同纵坐标的曲线,调用格式 Plotyy(x1,y1,x2,y2)

Plot是最基本的二维绘图函数:

Plot(Y),plot(X,Y)

>> x=0:0.05:5;

y=sin(x.^2);

plot(x,y);

>> x=0:0.05:5;

y1=0.2*x-0.8;

y2=sin(x.^2);

plot(x,y1,x,y2);

>> x=0:pi/180:2*pi; %两条不同纵坐标的曲线,颜色不同加以区分 y1=exp(-0.3*x).*cos(2*x);

y2=10*exp(-1.5*x);

plotyy(x,y1,x,y2);

条形图:

>> x=-2.9:0.2:2.9;

bar(x,exp(-x.*x));

极坐标:

t=0:0.1:2*pi;

polar(t,abs(cos(2*t)));

针状图:

>> x=0:0.1:4;

y=(x.^0.8).*exp(-x);

stem(x,y)

阶梯图:

>> x=0:0.25:10;

stairs(x,sin(2*x)+sin(x))

饼图:

>> x=[43,78,88,43,21];

pie(x)

色彩和线型

>> x=0:0.2:8;

y1=0.2+sin(-2*x);

y2=sin(x.^0.5);

plot(x,y1,'g-+',x,y2,'r--d'); %y1采用绿色、实线、加号标记; %y2采用红色,虚线,菱形表示 坐标轴及标注

函数axis指定坐标轴的刻度范围其调用格式为

Axis([xmin,xmax,ymin,ymax])

hold on/off 保持原有图形/刷新原有图形

axis on/off 显示/取消坐标轴

xlabel(‘option’) x轴加标注,option表示任意选项 ylabel(‘option’) y轴加标注

Title(‘option’) 图形加标题

Legend(‘option’) 图形加标注

Grid on/off 显示/取消网格线

Box on/off 给坐标加/不加边框线

>>x=0:0.05:5;

y1=exp(0.4.^x)-1.5;

y2=sin(x*4);

plot(x,y1,x,y2,'r-.');

line([0,5],[0,0]); %画直线,代替横坐标

xlabel('input');ylabel('output');

title('two function');

legend('y1=exp(0.4^x)-1.5','y2=sin(x*4)') grid on %画网格线

在一个图形窗口中用函数subplot可以同时画出多个子图形 x=linspace(0,2*pi,100);

subplot(2,2,1);plot(x,sin(x));

xlabel('x');ylabel('y');title('sin(x)'); subplot(2,2,2);plot(x,cos(x));

xlabel('x');ylabel('y');title('cos(x)');

subplot(2,2,3);plot(x,exp(x));

xlabel('x');ylabel('y');title('exp(x)'); subplot(2,2,4);plot(x,exp(-x));

xlabel('x');ylabel('y');title('exp(-x)');

三维曲线图

用plot3(x1,y1,z1)绘制三维图形

t=0:0.5:20;

plot3(sin(t),cos(t),t);

grid on

三维曲面图

格点矩阵:[X,Y]=meshgrid(x,y)

Surf(Z),surf(X,Y,Z)

Surfc():曲面下绘制曲面的等高线。

球:

[X,Y,Z]=sphere(30);

surf(X,Y,Z);

Shading faceted:分层网格线

Shading flat:平滑式

 

第二篇:Matlab重要知识总结

一、常用命令总结

eps 机器浮点数精度 realmax 最大正浮点数

Inf 无穷大 NaN 不定值

Any 向量中的元素有非零元素时返回真。

All 向量中的元素都是非零元素时返回真。

二 函数功能

1、linspace(初值,终值,n)创建以以初值开始终值结束且共有n个元素的行向量。

2、logspace(初值,终值,n)创建以以初值开始终值结束且共有n个对数分割量的行向量。

3、cat(dim,a1,a2)用来创建多维数组,dim是维数。

4、B=flipud(A)矩阵B由矩阵A上下翻转所得;B=fliplr(A)矩阵B由矩阵A左右翻转所得。

5、L=tril(A,K)L矩阵第K条对角线及以下的元素取矩阵A的元素,其余为0,L=tril(A)L矩阵主对角线及以下的元素取矩阵A的元素,其余为0;L=triu(A,K)、L=triu(A)同上。

6、创建逻辑类型矩阵或数组的函数有三个:logical函数可将任意类型的数组转化为逻辑类型;true产生逻辑真数组;false产生逻辑假数组;eye函数产生单位矩阵。

7、strcmp函数是比较两个输入的字符串是否相等,strncmp比较两个输入字符串的前几个字符是否相等。

8、isletter判断字符串中是否有字母,isspace判断字符串中是否有空白字符。

9、mean函数用来求列向量的平均值,det(A)求矩阵A的行列式,rank(A)求A的秩,inv

(A)求A的逆矩阵,pin(A)求矩阵A的违逆。

10、Cumprod求列元素的累积积,Cumsum求列元素的累积和,Diff求差分,Prod求列元素的积,Sort按照升序对列元素进行排序,Sortrows按照升序对行元素进行排序,Std求列元素的标准差。

11、limit函数用来求函数极限,diff函数实现某一函数的求导,int函数实现某一函数的积分运算,symsum用于级数的求和。Sym用来生成单个的符号变量,ezplot函数用来绘制符号函数,ezpolar用来绘制极坐标下的函数。

12、solve用来求解一般代数方程的符号解,dsolve是用来求解微分方程的符号解。

13、[N,D]=numden(A)函数提取符号表达式A中的分子和分母并分别将其存储在N和D中; Collect函数用来合并符号表达式中的同类项;expand表示符号表达式的展开,factor表示符号表达式的因式分解;gcd(n,m)返回m,n的最大公约数。

14、help+filename此命令可以查看函数的功能; lookfor+filename此命令可以查找所有带filename的函数。

15、创建M文件的时候,一定要防止文件名与Matlab内置函数或工具箱的函数重名,否则会被替换。

16、input命令用来提示用户从键盘输入数据或表达式;continue命令的作用是结束本次循环,即跳出循环体中未执行的指令,进入下一循环;return命令能是当前的函数推出。

17、一般情况下在M文件运行的时候在命令窗口看不到文件中的命令,若需要将所有文件中的命令在执行过程中显示出来,此时可以用echo命令。

18、一个嵌套函数可以被一下函数调用:该嵌套函数的上一层函数、同意母函数下的同级嵌套函数、任意低级别的函数。

19、@为MATLAB的操作符,用于建立函数句柄;functions命令用来返回函数句柄相关的信息。

plot X-Y方向绘图

loglog X-Y方向的双对数绘图

semilogx X-Y方向的半对数绘图(X轴取对数)

semilogy X-Y方向的半对数绘图(Y轴取对数)

ploar 极坐标绘图

mesh 三维网状曲面图形

bar 直方图

title 图形标题

xlabel X轴的标注

ylabelY 轴的标注

text 标注数据点

grid 画坐标线

20、ones(m,n)函数产生m行n列全1矩阵,zero(m,n)产生m行n列的全0矩阵;rand('state',s)表示随机产生数的状态state,一般情况下不用指定状态。但是有的书籍作者为了让读者能够看到和他书本的同样结果,采用了设置state,rand('state',0)作用在于如果指定状态,产生随机结果就相同了。

abs(x) 求x的绝对值。例:abs(-3)=3 x为整数

chr(x) 求编号x对应的字符。例:chr(65)='A' chr(97)='a' chr(48)='0' x为非负整数

ord(x) 求字符x对应的编号。例:ord(‘A')=65 ord(‘a')=97 另外:ord(false)=0 ord(true)=1 x为字符或数字或布尔量

sqr(x) 求x的平方。例:sqr(4)=16 x为整数

sqrt(x) 求x的正根。例:sqrt(16)=4 (ps:负数是不能进行运算的,如果需要就要先取绝对值:sqrt(-4)是错的,应该为sqrt(abs(-4))结果为实数

round(x) 求x的四舍五入。例:round(4.5)=5 x实数

trunc(x) 求x的整数部分。例:trunc(5.6)=5 结果是integer型 x为实数

int(x) 求x的整数部分。例:int(5.6)=5.0 结果是real型 x为实数

frac (x) 求x的小数部分。例:frac(5.6)=0.6 x为实数

pred(x) 求x的前导。例:pred(‘b')='a' pred(5)=4 pred(true)=false x为字符或数字或布尔量

succ(x) 求x的后继。例:succ(‘b')='c' succ(5)=6 succ(false)=true x为字符或数字或布尔量

odd(x) 判断x是否为奇数。如果是值为true,反之值为false。例:odd(2)=false odd(5)=true x为整数

power(a,n) 求a的n次方。例:power(2,3)=8 {只有在开启math库时才可以使用}a,n为整数,但是不能求高精度数

random(n) 取0~n-1之间的随机数(不能取到n) 。n为整数

max(x,y):返回x和y中的较大值。x,y整数

min(x,y):返回x和y中的较小值。x,y整数

三 常规总结

1、查询一个变量的类型,直接在命令行敲击变量名即可。

2、将一个变量用到多个函数上,只需将变量声明成全局变量即可。

3、输入矩阵时要以[ ]为标志,矩阵元素在其内部;矩阵同行元素用“,”行与行之间用“;”分割;矩阵大小可以不预先定义;举证元素可以为运算表达式。

相关推荐