【MATLAB】数组运算

(这里这列举笔者不熟悉的,容易忘的数组运算)

1、数组的转置

>> a=[1 2 3 4 5 6 7]

a =

     1     2     3     4     5     6     7

>> b=a'

b =

     1
     2
     3
     4
     5
     6
     7

2、对数组的赋值

>> a([1 4])=[0 0]

a =

     0     2     3     0     5     6     7
3、注意用“冒号”产生数组和用“linspace(a,b,n)”产生数组的区别
 linspace(1,2,5)

ans =

    1.0000    1.2500    1.5000    1.7500    2.0000

>> 1:3:8

ans =

     1     4     7

4、数组的乘除运算:通过格式“.*”,"./"可实现数组的乘除运算。要求运算规则要求数组A和B的维数相同。

乘法:数组A和B的维数相同,运算为数组对应元素相乘,计算结果与A和B是相同维数的数组。

>> a=[1 2 3 4 5]

a =

     1     2     3     4     5

>> b=[2 2 2 2 2 ]

b =

     2     2     2     2     2

>> a.*b

ans =

     2     4     6     8    10

除法:数组A和B的维数相同,运算为数组对应元素相除,计算结果与A和B是相同维数的数组。

>> a./b

ans =

    0.5000    1.0000    1.5000    2.0000    2.5000

左除和右除的关系:A./B=B.\A(其中A是被除数,B是除数)

5、数组的乘法

>> a

a =

     1     2     3     4     5

>> b

b =

     2     2     2     2     2

>> a.^b

ans =

     1     4     9    16    25

6、可以通过dot()来实现数组的点积运算

但是运算规则要求数组A和B的维数相同,其调用格式如下

A=[1 5 6 8 9 6]

B=[9 5 6 2 4 0]

>> A=[1 5 6 8 9 6]

A =

     1     5     6     8     9     6

>> B=[ 9 5 6 2 4 0]

B =

     9     5     6     2     4     0

>> C=dot(A,B)%数组的点积

C =

   122

>> D=sum(A.*B)%数组元素的乘积之和

D =

   122

7、数组的关系运算

A=[1 5 6 8 9 6]

B=[9 5 6 2 4 0]

A<B%A与B就是上一步的A和B

ans =

     1     0     0     0     0     0

8、数组的逻辑运算(且& 或| 非~)

A=[1 5 6 8 9 6]

B=[9 5 6 2 4 0]

>> A&B % A和B都是上边的A和B
ans =

     1     1     1     1     1     0

>> A|B

ans =

     1     1     1     1     1     1

>> ~B

ans =

     0     0     0     0     0     1

猜你喜欢

转载自blog.csdn.net/csdn___csdn/article/details/81047052