matlab学习笔记(4)

2018-12-29 22:33

plot(y)

3:把多个图放在一块:subplot(子图)

eg subplot(3,1,2)//一共三行一列,此图在第2个 eg subplot(3,2,5)//一共三行两列,此图在第5个 4:指定图形标题栏:title('') eg title('频谱图') 注意,要加''

指定x(自变量)轴标注文字:xlabel('') 指定y(自变量)轴标注文字:ylabel('') 5:坐标轴的范围的刻画:axis[x1,x2,y1,y2] 以坐标纸方式显示: grid 应用: eg x=[0:9]; 定义x轴 y=sin(2*pi/30*x)./x; 定义y轴

subplot(3,1,1); 在适当位置处画出一个空白的图像 plot(x,y); 填充此图像

title('一个例子'); 为此图像加标识 6:把多个图形画于同一个坐标中 eg plot(t, y, t, y0, t, -y0)

plot(t, y, '-r', t, y0, ':b', t, -y0, ':b')//'-r'表示红色线;':b'表示虚蓝线

如果后续图形也要画在当前的同一图形窗内,并且希望二条线同时存在,可输入:hold on;hold off关闭。 7:不同的线的画法

具体的直角坐标图绘图格式:plot(x,y,'cm')

式中x为自变量,y为因变量,c为颜色标记,m为线型标记符

b 蓝色 g 绿色 r 红色 c 青色 m 洋红 y 黄色 k 黑色 w 白色 . 小黑点(线型)o 小圈号 x 叉号 + 十字号 * 星号 s 方形 d 菱形 v 三角形

三角形(向上) < 三角形(向左) > 三角形(向右) p 五角星 h 六角星 - 实连线 : 虚点连线 -. 点划连线 -- 双划连线 注意:先写subplot,再写plot,最后为title axis等 figure窗口不消失:grid on; 三:提取性质

1:提取出数列的长度:length(数列) 四:运算

数列之间的运算要加\

1:四则运算:+ ;- ;* ;/ ;以及数列之间的运算:.+ ;.- ;.* ;./; 注意当分母为一个数列时,只能用./不能用/ 取余运算:mod(a,b) Eg1

mod(13,5) ans =

3 Eg2

mod([1:5],3) ans =

1 2 0 1 2

取整: Fix(a)

2:三角函数:sin();cos();tan();cot(); 3:幕运算:^以及数列之间的运算:.^ 指数运算:exp() 应用:eg n=\ x=\

W=(pi/12.5)*k; //w=(2*pi/25)*k y=(exp(-j*pi/12.5)).^(n.*x); eg x=\ w=(pi/12.5);

y=\);//所得为一系列复数 注意有数列时则一定用.^不用^ eg:a=0:9; b=\ c=\

(自己记:符号两边不对称的,一旦有一个数列,则用.) 4:复数相关

abs()复数大小(幅频特性) angle()复角(相频特性) real()实部 imag()虚部 5:累加

一维数组的话直接sum(b)

要叠加行或列用sum(b,1)或sum(b,2) 二维数组要叠加所有元素用sum(b(:)) 五:语句

1: if——else语句 if 条件

运行语句1; 运行语句2; 运行语句n; else//可以省略 运行语句1; 运行语句2; 运行语句n;

end

也可以 if 。。 else if 。。 else 。。 end end

2: for循环语句

for 数列//多用0:n-1去执行n次;或应用length取长度 运行语句1; 运行语句2; 运行语句n; End

3:while 逻辑 语句1; 语句2; End

六:信号的产生

1:0矩阵的创立:zeros(m行,n列)//行是一的矩阵也就是一个序列 2:1矩阵的创立:ones(m行,n列)//行是一的矩阵也就是一个序列

应用:单位抽样序列:[1 zeros(1,n-1)] ====[1 0 0 0 0 0 0 0...](一共n个数字) 单位阶跃序列:ones(1,n)==[1 1 1 1 1 1 1 ??.] 七:编写*.m文件,自定义的函数 过程: 书写方法:

定义为*.m文件。

多要利用循环,分支语句。 运行方法:

进入含有自定义函数的*.m文件。

在命令行里键入:m文件的名字,回车。 Eg: clear all; close all; clc; cd lib

函数: 书写方法:

和过程相似,但要有:function 返回值=函数名(参数1,参数2,参数3。。。。) 主意:可以不定义返回值,参数n。m文件名=函数名 局部变量:

全局变量:利用global命令 Eg:

global num; num=1000;

运行方法:

与一般的函数一样,返回值,参数n在函数外部定义。 Eg: function re=\w=2*pi*f; t=0:n-1; re=sin(w*t); plot(re);

多值返回[ra,rb,rc,..]=???

或者在m编译器中debug>>run(调试程序)

matlab中inline函数

在matlab命令窗口、程序或函数中创建局部函数时,可用inline。优点是不必将其储存为一个单独文件。在运用中有几点限制:不能调用另一个inline函数,只能由一个matlab表达式组成,并且只能返回一个变量---显然不允许[u,v]这种形式。因而,任何要求逻辑运算或乘法运算以求得最终结果的场合,都不能应用inline。除了这些限制,在许多情况下使用该函数非常方便。

Inline函数的一般形式为:

FunctionName=inline(‘任何有效的matlab表达式’, ‘p1’,’p2’ ,?.) ,其中‘p1’,’p2’ ,?是出现在表达式中的所有变量的名字。 如:(求解F(x)=x^2*cos(a*x)-b ,a,b是标量;x是向量 )

在命令窗口输入:

Fofx=inline(‘x .^2*cos(a*x)-b’ , ‘x’,’a’,’b’);

g= Fofx([pi/3 pi/3.5],4,1)

系统输出为:g=-1.5483 -1.7259

*****************************************************

f函数如何理解

f函数的最通常的应用是以下形式:

f('functionname',parameter),举个简单的例子:

比如要计算sin(2),当然可以直接用命令y=sin(2);利用f,还可以这样来做: y=f('sin',2);另外这里的函数名字还可以是一个函数句柄,即h=@sin; y=f(h,2);或者直接写成y=f(@sin,2);

Matlab函数句柄, 匿名函数

变量不仅可以用来表示数值(如: 1, 0.2, -5), 用来表示字符串(如: 't', 'casino'), 也可以用来表示函数哦. 当然, 你也看到了前面我们提到的函数都是一个一个的文件, 直接塞到一个变量里面似乎太大, 不过我们可以'提纲挈领', 抓住函数的handle(句柄), 就可以.

将函数句柄赋值给变量要用到@符号, 语法: 变量名=@函数名, 此处地函数名可以是当前Matlab中可以使用的任意函数 例如: mysin=@sin, 此后mysin就和sin同样地使用, mysin(pi)和sin(pi)的含义相同.

匿名函数

这是函数句柄的一种高级用法, 这样产生的函数句柄变量不指向特定的函数, 而是一个函数表达式. 其语法:

变量名=@(输入参数列表)运算表达式

例如, 前面那个计算变量平方的函数可以简单地写为这个匿名函数:

mysqr1=@(x)x.*x

之后, 执行mysqr1(变量名), 即可计算该变量的平方, 注意, mysqr1属性是函数句柄变量, 而不是这个表达式; 还有要注意这个表达式不需要用单引号括起来.

inline 函数

inline函数不是函数句柄, 是另外一种类型, 它也可以用变量来表示函数, 用法也和一般函数, 函数句柄是一样的. 定义inline函数的语法:

变量名=inline('函数表达式', '变量名1','变量名2', ... ,'变量名n')

当然啦, 如果是常见变量名, 如x, y, 等, 后面那个变量名列表可以省略(不建议为了偷懒这么做, 因为容易引起混乱). inline语句得到的变量类型比较特别, 是'inline object'.

举例依旧是计算变量的平方, 用inline的方法可以这么做:

mysqr2=inline('x.*x','x');

定义完mysqr2后, 可以用: mysqr2(3), 计算3的平方.

当然, 函数句柄, 匿名函数, inline函数还有很多比较高深的内容, 这里就不提了, 今后如果我写那些学科的notes时遇上了再补充.


matlab学习笔记(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新课标2012年高考生物复习热点系列13 实验专题 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: