原创 matlb自己总结(基础篇)

2009-1-11 13:10 3276 2 2 分类: 处理器与DSP

matlb自己总结(基础篇)
(1)help 命令
 可以查其用法
(2)“;”的用法
 不加“;”显示结果
 加“;”时不显示结果
(3)数列之间的运算要加"."
(4)在matlb中函数总是以离散数列形式给出的
 (5)常数:
 pi=圆周率;
 j=i=虚单元;
 ans=计算机结果的缺省变量名
(6)数列:a=[1 5 8 0 2]
矩阵:a=[1 5 8;0 8 4]
改变数列的某一个项的值:a(1)=11,则a=[11 5 8 0 2]//注意不是a(0)
 
 一:matlb的序列的表示方法
1:枚举法 
 eg a=[0 1 2 3 4 5 6 7 8 9]
2:已知首相尾相,与等差
 eg a=0:1:9
   或者简写成 a="0:9"(等差1可省略)
3:已知首相尾相,与序列总数
 eg a=linspace(0,9,10)
应用:x轴可写为 x=[0:n-1]
 二:画图
1:画出离散图形:stem
 eg stem(y) 注意,此时的x由系统自定。
  stem(x,y) 注意,x与y数列的点数一定要相同。
2:画出连续图形:plot
 eg plot(x,y)
  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="0:50";
   x="-25:25";
   W=(pi/12.5)*k; //w=(2*pi/25)*k
   y=(exp(-j*pi/12.5)).^(n.*x);
     eg  x="-25:25";
   w=(pi/12.5);
   y="exp"(-j*w*x);//所得为一系列复数
注意有数列时则一定用.^不用^  
 eg:a=0:9;
    b="a".^5;
    c="5".^a;
(自己记:符号两边不对称的,一旦有一个数列,则用.)
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="text"(f,n)
w=2*pi*f;
t=0:n-1;
re=sin(w*t);
plot(re);
多值返回[ra,rb,rc,..]=………
或者在m编译器中debug>>run(调试程序)

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条