我是靠谱客的博主 年轻草丛,最近开发中收集的这篇文章主要介绍【Matlab自学】基本运算,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Matlab的计算都是针对矩阵来的

单个数据的运算只是矩阵运算下的一个特例

(1)基本算数运算

加减运算

只有同型矩阵才能加减运算

一个标量也可以与矩阵加减运算,是吧标量和矩阵的每一个元素相加减

>> A=[1,2,3,4,5;1,2,3,4,5]

A =

     1     2     3     4     5
     1     2     3     4     5

>> A+1

ans =

     2     3     4     5     6
     2     3     4     5     6

>> A

A =

     1     2     3     4     5
     1     2     3     4     5

乘运算

要求两个矩阵可乘,或称两矩阵“维数和大小相容”

A =

     1     2     3     4     5
     1     2     3     4     5

>> B=[1,2;1,2;;;]

B =

     1     2
     1     2

>> A*B
错误使用  * 
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。
 
>> C=[1,2;1,2;,;,;1,2]

C =

     1     2
     1     2
     1     2

>> A*C
错误使用  * 
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。
 
>> C*A

ans =

     3     6     9    12    15
     3     6     9    12    15
     3     6     9    12    15

除法运算

(1)右除(/)

B/A=B*inv(A)

(2)左除()

AB=inv(A)*B

inv():逆矩阵

代表了不同的除数与被除数的关系

对于矩阵,不一定相同(想想也应该这样吧啊喂)

乘方运算

>> A^2
错误使用  ^ 
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'。
 
>> D=[1,2,3;4,5,6;7,8,9]

D =

     1     2     3
     4     5     6
     7     8     9

>> D^2

ans =

    30    36    42
    66    81    96
   102   126   150

(2)点运算(Matlab特色功能)

是指对应元素进行运算,要求俩矩阵同型

.*
./
.
.^

>> A.^A

ans =

           1           4          27         256        3125
           1           4          27         256        3125

>>

实际使用:

>> x=0.1:0.3:1

x =

    0.1000    0.4000    0.7000    1.0000

>> y=sin(x).*cos(x)

y =

    0.0993    0.3587    0.4927    0.4546

>> y=sin(x)*cos(x)
错误使用  * 
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。

——因为sin和cos在这个式子当中对应两个向量,直接相乘会不相容报错

(3)关系运算

关系运算符

<
<=
>
>=
== 等于
~= 不等于

成立返回1,不成立返回0

>> x=5,y=4

x =

     5

y =

     4

>> x==y

ans =

  logical

   0

如果比较的是矩阵,比完了还是个矩阵:

>> D=[1,2,3;4,5,6;7,8,9]

D =

     1     2     3
     4     5     6
     7     8     9

>> C=[1,2,3;5,5,5;7,8,9]

C =

     1     2     3
     5     5     5
     7     8     9

>> D==C

ans =

  3×3 logical 数组

   1   1   1
   0   1   0
   1   1   1

如果一个是标量,一个是矩阵,拿标量和元素一个个比较,最终生成的还是矩阵:

>> D==5

ans =

  3×3 logical 数组

   0   0   0
   0   1   0
   0   0   0

(4)逻辑运算

&(与)
|(或)
~(非)
>> 3<4&5>6

ans =

  logical

   0

优先级

>> ~9==1
 ~9==1
 ↑
错误: 文本字符无效。请检查不受支持的符号、不可见的字符或非 ASCII 字符的粘贴。
 
>> ~9==1

ans =

  logical

   0

>> ~(9==1)

ans =

  logical

   1

对于矩阵

若参与逻辑运算的是两个同型矩阵

则对相同位置进行逻辑运算,最后生成一个矩阵

如果是标量。。。和上面关系运算一样啦。。。

例:求解水仙花数

>> k=find(m==m1^3+m2^3+m3^3)
错误使用  ^ 
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'。
 
>> k=find(m==m1.^3+m2.^3+m3.^3)

k =

    54   271   272   308

>> s=m(k)

s =

   153   370   371   407

最后

以上就是年轻草丛为你收集整理的【Matlab自学】基本运算的全部内容,希望文章能够帮你解决【Matlab自学】基本运算所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部