现在的位置: 首页 > 综合 > 正文

matlab 向量/矩阵运算

2014年03月04日 ⁄ 综合 ⁄ 共 717字 ⁄ 字号 评论关闭

Matlab中for循环是灰常慢的,如果可能的话尽量使用vector或matrix,效率会大大提高~

向量/矩阵运算有些需要注意的地方。假设x,y是两个2*2的矩阵

>> x=[1 2;3 4];
>> y=[4 3;2 1];

如果要对矩阵中每个元素都做同样的运算的话,运算符前要加. (比如 .*,.^)

>> x.^2

ans =

     1     4
     9    16

对每个元素都求平方。如果不加点的话,就变成了求矩阵x的平方,也就是x*x的矩阵相乘运算

>> x^2

ans =

     7    10
    15    22

同理,x*y就是一般的矩阵相乘,而x.*y就是x和y每个对应位置的元素相乘

>> x*y

ans =

     8     5
    20    13

>> x.*y

ans =

     4     6
     6     4

如果有时运行程序出现了矩阵维数不相符的错误提示,有可能是你想让对应位置的元素一一做运算,但是忘记了加点.,比如

>> a=1:5;b=6:10;
>> a*b;
??? Error using ==> mtimes
Inner matrix dimensions must agree.

 

有时候运行matlab程序,如果有大循环,尤其是嵌套的,时间长的真是让人心碎啊~~如果可以利用向量和矩阵运算,效率会提高不少。

详细可以参考http://blog.sina.com.cn/s/blog_489f4bab01000aju.html

 

还有就是matlab里很多函数都支持向量/矩阵直接做参数的,很方便~

比如:

>> x=[1 2 3;4 5 6];
>> max(x,3.5)

ans =

    3.5000    3.5000    3.5000
    4.0000    5.0000    6.0000

 

 

 

 

抱歉!评论已关闭.