MATLAB 使用技巧

上传人:油条 文档编号:12400927 上传时间:2017-09-03 格式:PDF 页数:88 大小:702.97KB
返回 下载 相关 举报
MATLAB 使用技巧_第1页
第1页 / 共88页
MATLAB 使用技巧_第2页
第2页 / 共88页
MATLAB 使用技巧_第3页
第3页 / 共88页
MATLAB 使用技巧_第4页
第4页 / 共88页
MATLAB 使用技巧_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《MATLAB 使用技巧》由会员分享,可在线阅读,更多相关《MATLAB 使用技巧(88页珍藏版)》请在金锄头文库上搜索。

1、汇聚财智 共享成长 MATLAB 使用技巧 汇聚财智 共享成长 目 录 一 、 MATLAB 数组与编程 二、 MATLAB 统计分析 三、 MATLAB 最优化 四 、 MATLAB 与 Excel 的混合编程 五 、 MATLAB 调用数据库 六、 其它 汇聚财智 共享成长 一、 MATLAB 数组与编程 一维数组 A=1:10; A=-2.5:2.5; %起点终点可以不是整数, step 依然为 1 A=1:0.5:10; %step 为小数 A=10:-1:1; %step 为负数 A=linspace(1,10,6) %三个参数分别为数组的开始值、结束 值和元素 个数 汇聚财智 共享

2、成长 一、 MATLAB 数组与编程 特殊数组 zeros(n1,n2,) % 全 0,一个参数表示二维数组,否则几个参数表示几维 zeros(n,1) ones %全 1 eye %对角 1 rand %0,1均匀分布随机数 randn %正态分布随机数 true/false %生成值全为 1 或 0的逻辑数组 nan %生成值全为 NaN 的数组 汇聚财智 共享成长 一、 MATLAB 数组与编程 数组的合并 A B 或 horzcat(A,B) 水平 (第二维 )的合并 A;B 或 vertcat(A,B) 垂直 (第一维 )的合并 以上两个命令对多维数组也适用 cat(n,A,B,)

3、第 n 维的合并 汇聚财智 共享成长 一、 MATLAB 数组与编程 数组 的复制 C=repmat(A,m,n):将 A 按行复制 m 次,按列复制 n 次 C 的大小: size(A,1)*m,size(A,2)*n Kronecker 乘积 C=kron(A,B),用 A 的每个元素乘以 B 矩阵,然后按 A 的元素顺序排列 如果 B=one(m,n),那么 repmat(A,m,n)=kron(B,A) 例如 A=1 2;3 4 B=ones(2,3) kron(A,B)=1 1 1 2 2 2; 1 1 1 2 2 2; 3 3 3 4 4 4; 3 3 3 4 4 4 kron(B

4、,A)=repmat(A,2,3)=1 2 1 2 1 2; 3 4 3 4 3 4; 1 2 1 2 1 2; 3 4 3 4 3 4 汇聚财智 共享成长 一、 MATLAB 数组与编程 数据长度 length(A) %最长维的长度 ndims(A) %维数 numel(A) %元素个数 size(A) %每一维度的长度 n,m=size(A) %注意写法 n=size(A,dim) %返回第 dim 维的长度 汇聚财智 共享成长 一、 MATLAB 数组与编程 获取数组的元素 A(n1,n2,) A(n) 也可以定位多维数组,假设 A的大小 n1,n2,则 A(i,j)=A(i-1)*n1

5、+j) 也就是说,从第一维开始定位,多维数组复杂一些 转换 函数: n=sub2ind(size(A),i,j) i,j=ind2sub(size(A),n) 汇聚财智 共享成长 一、 MATLAB 数组与编程 巧妙运用 sub2ind A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16 a=A2,3 7 b=A4,2 14 c=A(2 4,3 2) 7 6 15 14 d=A(sub2ind(size(A),2 4,3 2) 7 14 汇聚财智 共享成长 一、 MATLAB 数组与编程 获取(定位)数组的元素 每个维度的参数可以不是一个值,可以是: 1:10 这

6、样的写法 2,3,5这样的写法 3:end 这样的写法, end 表示最后一个元素,对于 step 不为 1的情况,如果不能整除,也不会报错,很实用 : 表示这个维度所有元素都取 一维数组 B, B 1:end,甚至可以多层嵌套,每一层的 index只对上一层有效 A(B), B可以是和 A完全没有关系的多维矩阵, B 1: numel(A),得到的结果,每个元素都是类似 A(n)这样的定位结果 汇聚财智 共享成长 一、 MATLAB 数组与编程 删除数组元素 先定位,然后赋值 对多维数组,如果 A(1)=,将破坏多维结构,变成 1,numel(A)-1的数组 可赋值 NaN 降维方法: 假设

7、 A 是三维数组( 3 4 5),要返回 A 的后两维 B=A(1,:,:) % 1 4 5 的数组 C(:,:)=A(1,:,:) % 4 5 的 数组,确保 C 之前是不存在的 汇聚财智 共享成长 一、 MATLAB 数组与编程 常用判断函数 isnan %是否 NaN iscell %是否 cell型 isnumeric %是否数值型 ischar = isstr %是否字符型 isstruct %是否结构数组 isempty %是否空矩阵 汇聚财智 共享成长 一、 MATLAB 数组与编程 绘图: plot(x1,y1,) :二维 曲线 图 plotyy(x1,y1,x2,y2):双

8、y 轴图 plot3(x1,y1,z1,) :三维曲线图 mesh(x,y,z):三维网格图 meshc:三维网格图,并 在 xoy 面 绘制相应的等高线 图 meshz:三维网格图,并在网格图周围绘制垂直水平面的参考 平面 surf/surfc:三维曲面图 x,y = meshgrid(u,v):生成网格矩阵 bar/bar3:柱状图 /三维柱状图 pie/pie3:饼图 /三维饼图 scatter/scatter3:散点图 /三维散点图 area:面积图 hist:直方图 hold on:后续图形叠加 hold off:结束叠加,输出图形 汇聚财智 共享成长 一、 MATLAB 数组与编程

9、 plot 命令的 其它参数: plot(x1,y1,LineSpec,PropertyName,PropertyValue) LineSpec:如 -.or - 实线, - 虚线, : 点线, -. 点划线 + 加号, o 圆圈, * 星号, . 点, x 十字, s 方块, d 菱形, 向上三角形, v 向下三角形, 向右三角形, = = = & | & | 汇聚财智 共享成长 一、 MATLAB 数组与编程 if elseif else end switch case otherwise end(可比较字符串) 只执行第一个符合要求的 case,不需要也不能用 break 命令 for

10、end while end continue 和 break 对 for 和 while 均有效 return 结束此程序 try 和 catch try 程序 %如果出错,进入 catch 部分 catch 程序 end 汇聚财智 共享成长 一、 MATLAB 数组与编程 for 循环的一个细节: i=3; for i=1:i i=2*i end 输出: i=2 i=4 i=6 循环路径( 始点,步长和 终点 )在 进入 到 for 语句 的时候就决定 了 汇聚财智 共享成长 一、 MATLAB 数组与编程 函数 function 写第一行 紧接着 function 的 % 或者对一般程序来

11、说开头的 % 为程序的帮助文本 function a,b,n= functionname(A,B,M) 某个参数不需要时用 ,某个返回值不需要时用 nargin 输入参数的个数 nargout 输出参数的个数 varargin 传递任意个数的输入参数 vararginn(m) 代表第 n 个单元的第 m 个元素 varargout 返回任意个数的输出参数 varargoutn varargin 和 varargout 必须出现在参数的最后 重名时,优先级:自定义函数 内臵函数 变量 常量 当前目录优先级 系统目录( File-Set Path) 利用函数封装(类)可避免重名问题 汇聚财智 共享

12、成长 一、 MATLAB 数组与编程 函数句柄 fhandle=functionname; 调用函数 feval(fhandle,arg1,arg2, argn) func2str 函数句柄转换为字符串 str2func 字符串 (不需要 )转换为函数句柄 汇聚财智 共享成长 一、 MATLAB 数组与编程 类 class MATLAB 中大部分的程序包都有自己的类 class 的一般定义方法 建立 classname.m classdef classname 或者 classdef classname critval 拒绝 Wilcoxon 秩和检验(零假设:两个同分布的总体的中值相同) p

13、,h,stats=ranksum(x,y,alpha,alpha) stats:统计值结构 数组 .ranksum:秩和统计值 .zval: z 统计值(只在大样本时计算) Durbin-Watson 检验:检验残差序列是否相关 p,dw = dwtest(r,x,tail) %第三 个参数 method 一般不需要 汇聚财智 共享成长 二 、 MATLAB 统计分析 假设检验 单个总体的 Kolmogorov-Smirnov 检验 h,p,ksstat,cv=kstest(x,CDF,alpha,type) 零假设 :总体服从 标准正态分布或特定分布 type=unequal or larger or smaller ksstat: K-S 检验统计值 cv:是否拒绝零假设的临界值 两个总体的 Kolmogorov-Smirnov 检验 h,p,ks2stat=kstest2(x1,x2,alpha,type) 零假设:两个总体是否服从同一分布 汇聚财智 共享成长 二 、 MATLAB 统计分析 方差分析 单因子方差分析(对 X 的不同列数据的均值) 要求:正态分布,同方差,相互独立 p,table,stats=anova1(X,group,displayopt) group:分组

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号