matlab 精华
来源:互联网 发布:java过滤回车换行 编辑:程序博客网 时间:2024/04/28 02:00
请耐心看完,下面的东东对你肯定有帮助^_^一、安装及调试 I Matlab版本推荐 1、配置较差6.5,较好7或其以上 2、使用version命令可以查看matlab版本 3、版本对应:2006a--7.2,2007a--7.4,2008a--7.6 II Matlab参考书推荐(参见板上的ftp) 1、张志涌,北航,精通Matlab6.5 2、王正林、刘明,精通Matlab7 III 安装相关 1、序列号请到精华区查找 2、安装matlab时请关闭防火墙和杀毒软件 3、winxp切换到经典主题 IV查看代码 1、type filename 2、edit filename 3、任何地方选中filename点右键的open selection V调试 ctrl+r 注释多段 ctrl+t 解注多段 ctrl+i 自动缩进 ctr+[/] 多行想左/右移动一个tab (在for循环格式对齐比较 有用) keyboard:在函数调制中比较有用,可以看到函数工作空间的变量 ctr+c 强行结束程序(切换到CW(command window)执行) VI常见错误信息 1、Attempt to execute SCRIPT a as a function. 出现这个错误信息通常是因为变量名和函数名重名。 如不知道自己哪里定义了相关函数或变量,可用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);hold on;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',[a b c]); 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中的非数 字内容,可以先将其存为Microsoft excel 5.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 在command window键入 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-->model Properties-->callbacks-->Model pre-load fun填入产生变量 的m文件。 3、电路仿真: ctr+E选择合适的仿真方式,含非线性元件一般需改用ode23或ode15 4、自制信号源: 1、简单可以Sources-->Signal Builder中画出波形。 2、将数据生成,写成t,y两行的形式,存成.mat文件格式,用fromfile模块 5、scope图形数据导出: Scope-->Parameters-->Data History选save data to workspace填写变量名,格 式可选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 ---(Neural Network tool) 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\Enable cell mode,点工具栏新出现的位置第一个键(Publish to html)