我是靠谱客的博主 冷酷黑猫,最近开发中收集的这篇文章主要介绍矩阵列向量化 matlab,MatLab 向量化技巧,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MatLab 向量化技巧

家家 @ 2007-05-17 13:53

大家都知道MatLab是一种解释性语言,它的长处在矩阵运算。

因此需要将问题尽量用矩阵表示,并且要避免对单个矩阵元素操作,

而用整体矩阵运算。一个重要过程就是所谓将问题矢量化(vectorizing)。

一个问题是如果需要对矩阵的不同元素作不同操作,那么怎么办?举个例子

对矩阵X,作A=5*sin(X)/X,显然当X某元素->0时,A对应元素->5。按照

通常在其他语言思路编程为:

Nx=2000;

X=2.0*pi*(rand(Nx,Nx)-0.5);

X(1:Nx/2,:)=0.0; %生成Nx X Nx矩阵X,一半为随机分布,一半为0。

A=zeros(Nx,Nx);

for m=1:Nx

for n=1:Nx

if(abs(X(m,n))>=eps)

A(m,n)=5.0.*sin(X(m,n))./X(m,n);

else

A(m,n)=5.0;

end

end

end %(ProgramNo.1)

以上代码通过循环语句对每一个矩阵元素进行单独操作,这段代码在MatLab里效 率特别低。为避免循环,考虑如下方法:

方法I:用所谓logical subscripting。

Nx=2000;

X=2.0*pi*(rand(Nx,Nx)-0.5);

X(1:Nx/2,:)=0.0;

A=zeros(Nx,Nx);

I=(abs(X)>=eps);

A=I.*5.0.*sin(X)./(X+(1-I))+(1-I).*5.0; %(ProgramNo.2)

或者上面最后一行用如下代码代替:

A(I)=5.0.*sin(X(I))./X(I);

最后

以上就是冷酷黑猫为你收集整理的矩阵列向量化 matlab,MatLab 向量化技巧的全部内容,希望文章能够帮你解决矩阵列向量化 matlab,MatLab 向量化技巧所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部