MATLAB之牛人总结

未知 2019-07-16 10:53

  MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB应用非常之广泛!

  一、安装及调试

  IMatlab版本推荐

  1、配置较差6.5,较好7或其以上

  2、使用version命令可以查看matlab版本

  3、版本对应:2006a--7.2,2007a--7.4,2008a--7.6

  IIMatlab参考书推荐

  1、张志涌,北航,精通Matlab6.5

  2、王正林、刘明,精通Matlab7

  III安装相关

  1、序列号请到精华区查找

  2、安装matlab时请关闭防火墙和杀毒软件

  3、winxp切换到经典主题

  IV查看代码

  1、typefilename2、editfilename

  3、任何地方选中filename点右键的openselection

  V调试

  ctrl+r注释多段ctrl+t解注多段

  ctrl+i自动缩进ctr+[/]多行想左/右移动一个tab(在for循环格式对齐比较

  有用)

  keyboard:在函数调制中比较有用,可以看到函数工作空间的变量

  ctr+c强行结束程序(切换到CW(commandwindow)执行)

  VI常见错误信息

  1、AttempttoexecuteSCRIPTaasafunction.

  出现这个错误信息通常是因为变量名和函数名重名。

  如不知道自己哪里定义了相关函数或变量,可用which查看

  2、一般来说,若是最底层出错指向的是工具箱里面的函数,检查输入格式

  二、基本操作

  I矩阵

  1、1维向量:点运算:对每个数值运算eg:sum(v.^2)--平方和)

  2、2维矩阵:M(i,:)-第i行,M(:,j)-j列,M(i:i+4,j:j+5)-小块矩阵

  3、3维矩阵:M(:,:,1)--第1页

  II基本数学运算

  1、解方程

  线性X=A\b--AX=b型

  非线性fsolve(),ezplot()--从图形上找--f(x)=0型

  微分dsolve(),ode系列,由(非)刚性选择--f(x,x)=0

  偏微分pde()--F(x,t,y,au/ax)

  2、微积分

  微分:diff()输入需为符号型表达式,若是数值型求得为差分

  积分:int()多重积分内置多层int()

  3、优化

  线性规划linprog()MS只能求36个变量

  二次规划quadprog()

  III符号运算

  1、执行表达式eval()

  2、带入参数值feval()

  3、符号转数值vpa()

  三、画图:

  I二维图

  1、把两张图画在一个坐标:

  a、plot(x1,y1,b.,x2,y2,r*)

  b、plot(x1,y1);holdon;plot(x2,y2)

  2、双坐标图:plotyy()共x轴的左右y轴图形

  3、多子图:subplot()任意风格figure数目

  4、矢量图:quiver()

  5、等高线:contour()

  6、画矩形/椭圆rectangle()

  7、画线line()

  8、直方图bar()

  9、饼图pie()

  II三维图

  1、描点画线:plot3()

  2、绘制曲面surface(x,y,z)/surface(z)--着面

  mesh(z)其中x、y需用meshgrid()生成网格

  IIIfigure操作

  1、修改背景色set(gcf,color,[abc]);

  2、图形点加粗plot(x,y,b*,MarkerSize,10);默认是5

  3、填充图形fill(x,y,color)

  4、坐标轴控制axis()

  5、特殊格式上标^下标_斜体\it黑体\bf

  6、特殊字符\alpha

  四、数据处理

  I读取与储存

  1、excel(.xls):xlswrite(),xlsread()(若6.5版本无法读出excel中的非数

  字内容,可以先将其存为Microsoftexcel5.0/95工簿后再读入)

  2、txt数据:textread()

  3、图像存储:saveas()

  4、示波器(.csv)csvread()需从第17行开始(DL1620型号)

  5、文件读取fread()返回文件指针

  II三大变换/逆变换

  1、傅立叶fft()/ifft()二维傅立叶变换fft2()

  2、z变换ztrans()/iztrans()

  3、拉普拉斯laplace()/ilaplace()

  III插值拟合:

  1、多项式拟合:polyfit()

  2、正态分布拟合normfit()其他可类推^_^

  3、拟合工具箱cftool在commandwindow键入

  4、最小二乘lsqcurvefit()

  5、线性插值interp1()interp2()...

  6、样条插值spline()有专门的spline工具箱

  7、散乱数据插值griddata()

  ndgrid()生成多维函数和插值的数组

  pchip()分段3次hermite插值多项式

  8、回归regress()与glmfit()

  五、GUI界面

  1、消息框msgbox()

  2、提示框uiwait()--等待按键继续执行代码。

  3、获得文件名与路径uigetfile()

  4、GUI数据传送:setappdata(gcbf,Data,Data);

  Data=getappdata(gcbf,Data);

  5、通过一个界面弹出另一个界面:直接调用另一界面的m函数即可

  六、Simulink

  1、自动仿真:

  sim(modlename,tspan)---便于观察参数变化的仿真输出

  2、参数自动载入:

  File--modelProperties--callbacks--Modelpre-loadfun填入产生变量

  的m文件。

  3、电路仿真:

  ctr+E选择合适的仿真方式,含非线性元件一般需改用ode23或ode15

  4、自制信号源:

  1、简单可以Sources--SignalBuilder中画出波形。

  2、将数据生成,写成t,y两行的形式,存成.mat文件格式,用fromfile模块

  5、scope图形数据导出:

  Scope--Parameters--DataHistory选savedatatoworkspace填写变量名,格

  式可选Array,运行后数据存于工作空间。

  七、Control与EE相关

  I神经网络(ANN)

  1、网络不收敛:输入未归一化(BP)/隐层结点设的不恰当(不是越多越好)

  初始权值未缩小/数据本身存在矛盾组。

  归一化---prestd()权值缩小:net.LW{2,1}*小数;

  2、权值的查看:BP/RBF---net.LW{2,1}隐层net.b{1}net.b{2}阈值

  3、BP的误差最好设置成sse(默认是mse)net.performFcn=sse;

  4、工具箱进入:nntool---(NeuralNetworktool)

  II模糊(Fuzzy)控制器设计

  CW键入fuzzy启动模糊逻辑编辑器

  SISO系统:用自带的工具箱,CW中键入sisotool

  III电路仿真Powergui模块的应用

  用处很大,可进行暂稳态、模型离散,信号fft变换,指定输入输出动态响应...

  IV有用的函数

  1、提取传函系数tfdata()---尤其在模型离散化中用处最大。

  八、其他函数:

  1、随机数x-2-1(精华区)

  2、阶乘:factorial()

  3、数据首尾倒置fliplr()flippud()

  4、排序sort()

  5、有符号求余:mod()rem()

  6、全排列:perms()

  7、卷积conv()

  8、取整ceil()向上floor()向下的方向

  round()四舍五入fix()靠近0方向

  9、聚类函数fcm()---模糊聚类。kmeans()---k聚类

  九、比较有用功能

  I结果输出至IE文档

  Cell\Enablecellmode,点工具栏新出现的位置第一个键(Publishtohtml)

标签