matlab逻辑运算符 (matlab算术运算符)

l 2.3.1 算术运算符

l + - * .* ^ .^ \ .\ / ./

l >> A=[12 34 56 20]

l A =

l 12 34 56 20

l >> B=[1 3 2 4]

l B =

l 1 3 2 4

l >> C=A+B

l C =

l 13 37 58 24

输入的命令

显示的结果

幻灯片2

l >> AB=[A;B]

l AB =

l 12 34 56 20

l 1 3 2 4

l >> D=reshape(1:8,2,4)

l D =

l 1 3 5 7

l 2 4 6 8

l >> AB+D

l ans =

l 13 37 61 27

l 3 7 8 12

l >> AB+5

l ans =

l 17 39 61 25

l 6 8 7 9

l >> 3*D

l ans =

l 3 9 15 21

l 6 12 18 24

l >> D/4

l ans =

l 0.2500 0.7500 1.2500 1.7500

l 0.5000 1.0000 1.5000 2.0000

l >> clear all

l >> A=[1;2]

l A =

l 1

l 2

l >> B=[3 4 5]

l B =

l 3 4 5

l >> A*B

l ans =

l 3 4 5

l 6 8 10

l >> C=[12 45]

l C =

l 12 45

l >> D=[2;3]

l D =

l 2

l 3

l >> C=[12;45]

l C =

l 12

l 45

l >> C.*D

l ans =

l 24

l 135

l >> C./D

l ans =

l 6

l 15

l >> E=[1 2;3 4]

l E =

l 1 2

l 3 4

l >> E^2

l ans =

l 7 10

l 15 22

l >> E.^2

l ans =

l 1 4

l 9 16

l >> invE=E^(-1)

l invE =

l -2.0000 1.0000

l 1.5000 -0.5000

l >> inv(E)

l ans =

l -2.0000 1.0000

l 1.5000 -0.5000

l >> clear all

l >> A=[1 -2;0 3]

l A =

l 1 -2

l 0 3

l >> B=[1 0;-1 2;5 8]

l B =

l 1 0

l -1 2

l 5 8

l >> B/A

l ans =

l 1.0000 0.6667

l -1.0000 0

l 5.0000 6.0000

l >> B*inv(A)

l ans =

l 1.0000 0.6667

l -1.0000 0

l 5.0000 6.0000

l >> C=[B,[1 -2 1]’]

l C =

l 1 0 1

l -1 2 -2

l 5 8 1

l >> A=reshape(1:9,3,3)

l A =

l 1 4 7

l 2 5 8

l 3 6 9

l >> A(5)=0

l A =

l 1 4 7

l 2 0 8

l 3 6 9

l >> A/C

l Warning: Matrix is singular to working precision.

l ans =

l -Inf -Inf Inf

l -Inf -Inf Inf

l -Inf -Inf Inf

l >> det(A)

l ans =

l 60

l >> det(C)

l ans =

l 0

l >> C

l C =

l 1 0 1

l -1 2 -2

l 5 8 1

l >> C(2,3)=2

l C =

l 1 0 1

l -1 2 2

l 5 8 1

l >> det(C)

l ans =

l -32

l >> A\C

l ans =

l 1.7667 4.4667 -0.0667

l 0.8000 0.4000 -0.2000

l -0.5667 -0.8667 0.2667

l >> inv(A)*C

l ans =

l 1.7667 4.4667 -0.0667

l 0.8000 0.4000 -0.2000

l -0.5667 -0.8667 0.2667

l >> A*inv(C)

l ans =

l 3.0000 2.0000 0.0000

l 5.3750 1.5000 -0.3750

l 4.3125 2.2500 0.1875

l >> A/C

l ans =

l 3.0000 2.0000 0

l 5.3750 1.5000 -0.3750

l 4.3125 2.2500 0.1875

l >> A=[1 2 3;4 5 6]

l A =

l 1 2 3

l 4 5 6

l >> A’

l ans =

l 1 4

l 2 5

l 3 6

l >> Z=[1+i 2;3 1+2*i]

l Z =

l 1.0000 + 1.0000i 2.0000

l 3.0000 1.0000 + 2.0000i

l >> W=Z’

l W =

l 1.0000 - 1.0000i 3.0000

l 2.0000 1.0000 - 2.0000i

l >> W2=Z.’

l W2 =

l 1.0000 + 1.0000i 3.0000

l 2.0000 1.0000 + 2.0000i

l 2.3.2 关系运算符

l > >= < <= == ~=

l >> A=[0 -1 2 4.5 5];

l >> B=[-2 -1 3 2 5];

l >> A<B

l ans =

l 0 0 1 0 0

l >> A<=B

l ans =

l 0 1 1 0 1

l >> A>B

l ans =

l 1 0 0 1 0

l >> A>=B

l ans =

l 1 1 0 1 1

l >> A==B

l ans =

l 0 1 0 0 1

l >> A~=B

l ans =

l 1 0 1 1 0

l >> a=[10 20 30;-20 30 40]

l a =

l 10 20 30

l -20 30 40

l >> b=[-10 20 40;20 30 50]

l b =

l -10 20 40

l 20 30 50

l >> c=a>=b

l c =

l 1 1 0

l 0 1 0

l >> d=a(c)

l d =

l 10

l 20

l 30

l >> x=[0 1 2;0 0 3];

l >> idx=find(x)

l idx =

l 3

l 5

l 6

l >> x=magic(3)

l x =

l 8 1 6

l 3 5 7

l 4 9 2

l >> [idx1 idx2]=find(x>5)

l idx1 =

l 1

l 3

l 1

l 2

l idx2 =

l 1

l 2

l 3

l 3

l >> x=magic(5)

l x =

l 17 24 1 8 15

l 23 5 7 14 16

l 4 6 13 20 22

l 10 12 19 21 3

l 11 18 25 2 9

l >> x(find(7<x&x<11))

l ans =

l 10

l 8

l 9

l >> find(7<x&x<11)

l ans =

l 4

l 16

l 25

l >> x=[1 -1 0;2 8 5]

l x =

l 1 -1 0

l 2 8 5

l >> sum(x)

l ans =

l 3 7 5

l >> A=x==2

l A =

l 0 0 0

l 1 0 0

l >> sum(A)

l ans =

l 1 0 0

l >> sum(sum(A))

l ans =

l 1

2.2.3 逻辑运算符

l & (与) |(或) ~(非) xor(异或)

l >> A=[1 2 0 3 4 -1];

l >> B=[-1 0 0 5 4 9];

l >> and_result=A&B

l and_result =

l 1 0 0 1 1 1

l >> or_result=A|B

l or_result =

l 1 1 0 1 1 1

l >> not_result=~B

l not_result =

l 0 1 1 0 0 0

l >> xor_result=xor(A,B)

l xor_result =

l 0 1 0 0 0 0

l

2.3.3 逻辑函数

l all 判断是否所有元素为非零值

l any 判断是否存在一个元素为非零值

l exist 查看变量或函数是否存在

l find 找出向量或矩阵中非零元素的位置标识

l isempty 判断矩阵是否为空矩阵

l isequal 判断几个对象是否相等

l isnumeric 判断对象是否为数值型

l >> a=[1 2 3 0.6 -5]

l a =

l 1.0000 2.0000 3.0000 0.6000 -5.0000

l >> any(a) % a中是否存在非零元素

l ans =

l 1

l >> a=[1 2 3 0 -5]

l a =

l 1 2 3 0 -5

l >> any(a)

l ans =

l 1

l >> all(a) % a中是否所有的元素为非零值

l ans =

l 0

l >> A=[1 0 1;2 -2 0;3 -1 4]

l A =

l 1 0 1

l 2 -2 0

l 3 -1 4

l >> all(A) %按列判断

l ans =

l 1 0 0

l >> any(A)

l ans =

l 1 1 1

l >> B=[A,[0 0 0]’]

l B =

l 1 0 1 0

l 2 -2 0 0

l 3 -1 4 0

l >> any(B)

l ans =

l 1 1 1 0

l >> any(B,3) %对每一元素进行判断

l ans =

l 1 0 1 0

l 1 1 0 0

l 1 1 1 0

l >> all(A,2) %按行进行判断

l ans =

l 0

l 0

l 1

l >> A

l A =

l 1 0 1

l 2 -2 0

l 3 -1 4

l >> all(A,1) %按列进行判断(与all(A)相同)

l ans =

l 1 0 0

l

l >> A=[0 2 3;0 4 5]

l A =

l 0 2 3

l 0 4 5

l >> all(A,2)

l ans =

l 0

l 0

l >> all(A,1)

l ans =

l 0 1 1

l >> all(A,3)

l ans =

l 0 1 1

l 0 1 1

l >> all(A,4)

l ans =

l 0 1 1

l 0 1 1

l >> B=[B,[1 0 1]’]

l B =

l 1 0 1 0 1

l 2 -2 0 0 0

l 3 -1 4 0 1

l >> all(B)

l ans =

l 1 0 0 0 0

l >> all(B,1)

l ans =

l 1 0 0 0 0

l >> all(B,2)

l ans =

l 0

l 0

l 0

l >> all(B,3)

l ans =

l 1 0 1 0 1

l 1 1 0 0 0

l 1 1 1 0 1

l >> A=[0 -1 1.5;2 1 3]

l A =

l 0 -1.0000 1.5000

l 2.0000 1.0000 3.0000

l >> B=[0 -1 1.5;2 1 4]

l B =

l 0 -1.0000 1.5000

l 2.0000 1.0000 4.0000

l >> isequal(A,B)

l ans =

l 0

l >> B=[0 -1 1]

l B =

l 0 -1 1

l >> isequal(A,B)

l ans =

l 0

l >> B=’I’’m a student’

l B =

l I’m a student

l >> isequal(A,B)

l ans =

l 0

l >> A=[0.2 0.3 0.4];

l >> B=[1+2i 3+4i];

l >> C=[’I’ ’am’ ’a’ ’student’]

l C =

l Iamastudent

l >> isnumeric(A)

l ans =

l 1

l >> isnumeric(B)

l ans =

l 1

l >> isnumeric(C)

l ans =

l 0

l 2.3.5 字符串操作

字符串是由数个字符构成的,用(‘ ’)来界定,一个字符串可被视字符数组。

l 1. 数组的创建

l 直接输入

l >> s1=’Hello I am a student’

l s1 =

l Hello I am a student

l >> s2=[’Hello ’ ’I ’ ’am ’ ’a ’ ’student’]

l s2 =

l Hello I am a student

l >> length(s1) %求字符串的长度

l ans =

l 20

l >> length(s2)

l ans =

l 20

l >> s3=[’Hello ’;’I am a student’] %第一行与第二行长度相同

l s3 =

l Hello

l I am a student

l >> length(s3)

l ans =

l 14

l 利用char函数

l >> char(reshape(32:127,32,3)’)

l ans =

l !"#$%&’()*+,-./0123456789:;<=>?

l @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_

l `abcdefghijklmnopqrstuvwxyz{|}~

l >> t1=’Hello’;

l >> t2=’I am a student’;

l >> t3=’I’’m from guangxi’;

l >> s=char(t1,t2,t3) %生成字符数组,此命令不必考虑每行字符数是否相等,总按最长设置,不足用空格补齐.

l s =

l Hello

l I am a student

l I’m from guangxi

l 2. 字符串操作

l >> size(s) %求字符串规模,返回数组的各维长度

l ans =

l 3 16

l >> size(s(3,:)) %查看s第三行规模

l ans =

l 1 16

l >>length(s) %返回最长维的长度

l ans=

l 16

l >> t4=t3(16:-1:1)

l t4 =

l ixgnaug morf m’I

l >> t5=t3(10:16)

l t5 =

l Guangxi

l >> str1=’Hello’;

l >> double(str1) %查看字符的Ascii码

l ans =

l 72 101 108 108 111

l >> char(ans)

l ans =

l Hello

l >> t6=t3(10:16)’

l t6 =

l g

l u

l a

l n

l g

l x

l i

l >> t7=[t1 t2]

l t7 =

l HelloI am a student

l >> A=[1.2 3.6 7.1 10.2 10 3];

l >> B1=num2str(A)

l B1 =

l 1.2 3.6 7.1 10.2 10 3

l >> char(B1)

l ans =

l 1.2 3.6 7.1 10.2 10 3

l

l >> A=[101 102 103;201 202 203];

l >> B1=num2str(A)

l B1 =

l 101 102 103

l 201 202 203

l >> char(A) %将数值转化成字符串

l ans =

l efg

l 墒�

l >> char(B1)

l ans =

l 101 102 103

l 201 202 203

l >> A=[1.2 3.6 7.1 10.2 10 3];

l >> num2str(A,1)

l ans =

l 1 4 7 1e+001 1e+001 3

l

l >> num2str(A,2)

l ans =

l 1.2 3.6 7.1 10 10 3

l >> A=[1.14 2.26 3.1 -2.6 -2.4 1.9 2.09]

l A =

l 1.1400 2.2600 3.1000 -2.6000 -2.4000 1.9000 2.0900

l >> num2str(A,2)

l ans =

l 1.1 2.3 3.1 -2.6 -2.4 1.9 2.1

l >> num2str(A,1)

l ans =

l 1 2 3 -3 -2 2 2

l >> num2str(A,’%10.3f’) %3位有效,10位长

l ans =

l 1.140 2.260 3.100 -2.600 -2.400 1.900 2.090

l >> num2str(A,’%10.2f’)

l ans =

l 1.14 2.26 3.10 -2.60 -2.40 1.90 2.09

l >> num2str(A,’%0.5f’) %5位有效

l ans =

l 1.140002.260003.10000-2.60000-2.400001.900002.09000

l >> num2str(A,’%10.5f’)

l ans =

l 1.14000 2.26000 3.10000 -2.60000 -2.40000 1.90000 2.09000

l >> A=[1.14 2.26 3.1 -2.6 -2.4 1.9 2.09 0.1 -0.5 -0.6]

l A =

l 1.1400 2.2600 3.1000 -2.6000 -2.4000 1.9000 2.0900 0.1000 -

l

l 0.5000 -0.6000

l

l >> num2str(A,’%2.5f’)

l ans =

l 1.140002.260003.10000-2.60000-2.400001.900002.090000.10000-0.50000-0.60000

l >> num2str(A,’%7.4f’)

l ans =

l 1.1400 2.2600 3.1000-2.6000-2.4000 1.9000 2.0900 0.1000-0.5000-0.6000

l >> a=[1 2 0.4 -0.5];

l >> b=[-1 0.34 4.5 4.9];

l >> s=’b.*sin(a)’

l s =

l b.*sin(a)

l >> sinx=eval(s)

l sinx =

l -0.8415 0.3092 1.7524 -2.3492

l >> eval11

l Name Size Bytes Class

l

l i 1x1 8 double array

l x3 3x3 72 double array

l x4 4x4 128 double array

l x5 5x5 200 double array

l x6 6x6 288 double array

l

l Grand total is 87 elements using 696 bytes

l

l >> x3

l x3 =

l 8 1 6

l 3 5 7

l 4 9 2

l 3. 字符串比较

l >> str1=’good’;

l >> str2=’god’;

l >> str3=’good’;

l >> strcmp(str1,str2)

l ans =

l 0

l >> strcmp(str2,str3)

l ans =

l 0

l >> strcmp(str1,str3)

l ans =

l 1

l >> str4=’Good’;

l >> strcmp(str1,str4)

l ans =

l 0

l >> strcmpi(str1,str4) %不区分大小写

l ans =

l 1

l >> strncmp(str1,str2 ,2) %比较前2个字母

l ans =

l 1

l >> strncmp(str1,str2 ,3)

l ans =

l 0