matlab代码矢量化指南

matlab代码矢量化指南

ID:18285983

大小:52.50 KB

页数:19页

时间:2018-09-16

matlab代码矢量化指南_第1页
matlab代码矢量化指南_第2页
matlab代码矢量化指南_第3页
matlab代码矢量化指南_第4页
matlab代码矢量化指南_第5页
资源描述:

《matlab代码矢量化指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MATLAB代码矢量化指南标题:(译)MATLAB代码矢量化指南发信站:BBS水木清华站(TueNov1200:43:162002),站内本文节译自http://www.mathworks.com/support/tech-notes/1100/1109.shtmlRevison:2.0LastDateModified:15-October-2002翻译:coolor@smth感谢:smth2008@smth提供他的译稿。本文多处参考或引用他的译文=========================================

2、================一、基本技术-----------------------------------------------------1)MATLAB索引或引用(MATLABIndexingorReferencing)在MATLAB中有三种基本方法可以选取一个矩阵的子阵。它们分别是下标法,线性法和逻辑法(subscripted,linear,andlogical)。如果你已经熟悉这个内容,请跳过本节1.1)下标法非常简单,看几个例子就好。A=6:12;A([3,5])ans=810A([3:2:end])ans=

3、81012A=[111417;...121518;...131619];A(2:3,2)ans=15161.2)线性法二维矩阵以列优先顺序可以线性展开,可以通过现行展开后的元素序号来访问元素。A=[111417;...121518;...131619];A(6)ans=16A([3,1,8])ans=131118A([3;1;8])ans=1311181.3)逻辑法用一个和原矩阵具有相同尺寸的0-1矩阵,可以索引元素。在某个位置上为1表示选取元素,否则不选。得到的结果是一个向量。A=6:10;A(logical([00101])

4、)ans=810A=[1234];B=[1001];A(logical(B))ans=14-----------------------------------------------------2)数组操作和矩阵操作(ArrayOperationsvs.MatrixOperations)对矩阵的元素一个一个孤立进行的操作称作数组操作;而把矩阵视为一个整体进行的运算则成为矩阵操作。MATLAB运算符*,/,,^都是矩阵运算,而相应的数组操作则是.*,./,.,.^A=[10;01];B=[01;10];A*B%矩阵乘法ans

5、=0110A.*B%A和B对应项相乘ans=0000------------------------------------------------------3)布朗数组操作(BooleanArrayOperations)对矩阵的比较运算是数组操作,也就是说,是对每个元素孤立进行的。因此其结果就不是一个“真”或者“假”,而是一堆“真假”。这个结果就是布朗数组。D=[-0.21.01.53.0-1.04.23.14];D>=0ans=0111011如果想选出D中的正元素:D=D(D>0)D=1.00001.50003.00004

6、.20003.1400除此之外,MATLAB运算中会出现NaN,Inf,-Inf。对它们的比较参见下例Inf==Inf返回真Inf<1返回假NaN==NaN返回假同时,可以用isinf,isnan判断,用法可以顾名思义。在比较两个矩阵大小时,矩阵必须具有相同的尺寸,否则会报错。这是你用的上size和isequal,isequalwithequalnans(R13及以后)。------------------------------------------------------4)从向量构建矩阵(ConstructingMatr

7、icesfromVectors)在MATLAB中创建常数矩阵非常简单,大家经常使用的是:A=ones(5,5)*10但你是否知道,这个乘法是不必要的?A=10;A=A(ones(5,5))A=10101010101010101010101010101010101010101010101010类似的例子还有:v=(1:5)';n=3;M=v(:,ones(n,1))M=111222333444555事实上,上述过程还有一种更加容易理解的实现方法:A=repmat(10,[55]);M=repmat([1:5]',[1,3]);其中

8、repmat的含义是把一个矩阵重复平铺,生成较大矩阵。更多详细情况,参见函数repmat和meshgrid。-----------------------------------------------------5)相关函数列表(UtilityFunction

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。