%当然不一样了,axes是创建坐标轴,axis是设定其范围。
%我给你个简单的例子,一定自己运行一下看看:
clear; clear all; x=0:10*pi;%x从0到10π。
y=sin(x); axes(‘position’,[0.1 0.2 0.3 0.4]); % 创建一个坐标系。
%让起点是左边占到显示窗口的十分之一处,下边占到十分之二处。
%,宽占十分之三,高占十分之四。一个小框就出来了。 plot(x,y);
%画图。
axis([0 2*pi -0.5 0.5]);
% x的坐标范围是0到2π,y的范围是-0.5到0.5。
%现在你自己看横纵坐标。
%运行完之后把下边这行的%去掉,再运行一次你会发现啥?
%axes;
%建立的坐标轴把原来的覆盖了是吧?这说明要建立坐标轴要在绘图之前哦。
画频谱图
fs=16;
t=0:1/fs:200;
x6=0.6+sin(2*pi*t/2.996)*0.1+cos(2*pi*t/7.92+2)*0.1;
subplot(2,1,1);
plot(t,x6);
N=length(t);
subplot(212);
plot((-N/2:N/2-1)*fs/N,abs(fftshift(fft(x6,N)))*2/N) %绘制信号的频谱,横轴对应实际
第二篇:MATLAB总结
总结
本课的主要内容:
1. 基本数据结构
2. 基本的流程;
3. 常用的功能函数;
一、 matlab基本操作
1. 变量名的命名规则:区分大小写,由字母、数字和下划线组成,但第一个字符必须是字母。
2. 赋值:不能连写,即a=b=1是错的,用分号结束。
3. 常用的数学函数:三角函数、abs、sqrt、rem(向0求余)、ceil、fix、floor、round、mod(模除求余)、min、max、sum。
注意ceil、fix、floor、round的区别:
Ceil向正无穷取整,floor向负无穷取整;ceil(-0.1)=0; floor(-0.1)= -1 Fix向0取整,round向最靠近的整数取整;fix(-0.6)=0; round(-0.6)=-1; 注意mod与rem的区别:
MOD(x,y)= x - n.*y where n = floor(x./y) if y ~= 0
REM(x,y) = x - n.*y where n = fix(x./y) if y ~= 0
故Mod(-4,3)= -4-floor(-4/3)*3= -4-floor(-1.3)=-4-(-2)*3=2 Rem(-4,3)= -4-fix(-4/3)*3= -4-fix(-1.3)=-4-(-1)*3= -1
4. 关系运算符 & | ~
二、 数组与矩阵运算
1. 数组和矩阵的产生方式:
直接输入、冒号生成、利用函数生成矩阵(diag、eye、ones、zeros、blanks), 注意:zeros(负整数)=[]、eye(负整数)=[]、 ones(负整数)=[]。
2. 子矩阵的寻访和赋值
A(r,c) A阵的第r行第c列的元素,注意: r和c可以是数字,也可以是向量。
A(r,:) A阵的第r行
A(:.c) A阵的第c列
A(:) A阵按从左到右的从上到下顺序展开为行向量
A(i) A阵按从左到右的从上到下顺序展开为行向量后的第i个元素
3. 矩阵算术运算 + - * \(B*inv(A)) / (inv(A)*B) ^ ?
注意参加运算的矩阵维数要满足矩阵运算的要求;
注意点乘运算和常规矩阵运算的差别:点乘是对矩阵中的每个元素做运算,运算符左右两端的矩阵维数要完全相同
4. 常用矩阵运算函数
det(行列式值)、eig(特征值、特征向量)、norm(矩阵范数)、inv(矩阵的逆)、rank(矩阵的秩)
三、 多项式的表达和操作
1. 多项式的表达方式:降幂形式、用系数行向量表示、缺项系数为0
2. 多项式行向量的生成:直接写出系数行向量;利用指令Poly生成,
3. 运算roots
4. 符号运算:创建符号变量 syms,运算函数 collect、factor
四、 字符串、元胞数组、结构体
1. 字符串:字符串是以向量的方式存储的,因此可以按照向量的方式操作-取值、求长度、扩展、赋值
2. 字符串函数:str2num、num2str、int2str、str2int、sprintf、eval
3. 元胞数组 可以存储不同类型的数据的结构
(1)
(2)
(3) 创建元胞数组命令 A=cell(r,c); 给元胞数组赋值A(r,c)={数据}; 访问元胞数组中的数据
A(r,c)表示找到一个元胞元素,只显示该元素存储数据的类型
A{r,c}表示找到一个元胞元素,并显示该元素存储的数据
4. 结构体数组
(1)
(2) 生成结构体 struct 结构体命令 fieldnames、getfield、setfield
五、 M文件和M函数
1. M文件有两种:脚本、M函数
脚本是一系列命令的组合,M函数是一个以function 关键字创建的函数文件, 注意:要想在M文件中调用自己编写好的M函数,必须把要调用的函数和文件放在同一文件夹中,或将需调用的函数加到Matlab的搜索路径中,添加方法:start->Desktop tools->Path,在弹出的对话框中找到相应的文件,点击“save”。或在菜单File->set path在弹出的对话框中找到相应的文件,点击“save”。
注意:在编写m文件时,每个命令最后必须以“;”结束,否则会将数据显示在工作空间中,这将大大影响程序执行的效率。
注意:在编写m文件时,尽量少用循环,尽量采用向量的方式运算,即循环的向量化。这是提高程序执行效率的有效手段。
2. M文件和M函数的基本流程:
if
elseif
end
switch index
case i
case
end
for
end
注意这些流程控制语句和c语言的区别。
六、 Matalb绘图功能和GUI设计
1. 基本的绘图命令plot,熟练掌握plot命令的使用方式,能够熟练画出各种图形;
2. 常用绘图命令:title、xlabel、ylabel、legend、grid on、subplot、hold on
3. 掌握绘制三维图形的方法:首先产生x,y坐标,利用函数z=f(x,y)或meshgrid得到z值。再用plot3命令。
4. 掌握利用Guide做简单图形界面的方法。了解利用figure、unicontrol等命令和回调函数创建Gui界面的m文件的方法。
七、 Simulink仿真
1. 掌握基本.mdl文件的创建方式(找模块、拖模块、设参数、连模块、定步长、选方法、作仿真),知道常用模块所在的模块库名,知道如何设置仿真的solve页。
注意:在simulink仿真中,要注意:信号的维数前后是否一致、仿真步长是否合适、模块参数设置是否正确
2. 掌握基本的simulink命令行仿真方法:
(1) 如何将.mdl文件的结果输出到工作空间,利用Sink库中的Toworkspace模块,注意该模块的参数设置:变量名设成期望的名字、数据保存方式save format应选“Array”。
(2) 如何在m文件中调用.mdl文件,利用sim命令;;
(3) 如何在m文件中改变.mdl文件中参数值,利用assignin命令
3. 知道如何封装simulink模块
4. 掌握用s函数模版编写S函数的方法,知道如何调用S函数。
八、 控制系统工具箱
1. 掌握基本的描述系统的命令tf、zpk、ss
2. 掌握各种模型之间的转换方法;
3. 掌握基本的时域分析命令:ploe、zero、step、impluse
4. 掌握频域分析命令:bode、Nyquist、nichols、margin、rlocus