01 MATLAB基本概念

基本概念

整数类型

  • 相同整数类型相乘还是整数
  • 整数与浮点数相乘是这种整数类型
  • 不同整数类型不能相乘,除非强制类型转换

整数与整数相乘:

>> x = uint32(120);
>> y = uint32(5);
>> z = x * y
z =
         600
>> whos
  Name      Size            Bytes  Class     Attributes

  x         1x1                 4  uint32              
  y         1x1                 4  uint32              
  z         1x1                 4  uint32   

整数与浮点数相乘:

>> z = x * 1.2
z =
         144
>> whos
  Name      Size            Bytes  Class     Attributes

  x         1x1                 4  uint32              
  z         1x1                 4  uint32  

浮点类型

分为单精度和双精度 MATLAB中默认的数值类型为双精度浮点类型

>> x = 100
x =
   100
>> whos
  Name      Size            Bytes  Class     Attributes

  x         1x1                 8  double  

注意:
双精度:

  • 与逻辑型、字符型进行运算时,返回结果为双精度浮点型
  • 与整数运算时返回整数类型
  • 与单精度运算时,返回单精度

单精度

  • 与逻辑型、字符型运算时返回单精度
  • 不能与整数类型进行运算
>> x = single(1.2)
x =
    1.2000
>> y = uint8(10)
y =
   10
>> z = x * y
错误使用  .* 
整数只能与相同类的整数或标量双精度值组合使用。

复数

real(z)          %返回z的实部  
imag(z)        %返回z的虚部
abs(z)          %返回z的幅度
angle(z)       %返回z的相角
conj(z)         %返回z的共轭
complex(a,b)   %以a为实部,b为虚部生成复数a + jb
x = 1 + 2i
real(x)
imag(x)
abs(x)
angle(x)
conj(x)
complex(1,2)

x =
   1.0000 + 2.0000i
ans =
     1
ans =
     2
ans =
    2.2361
ans =
    1.1071
ans =
   1.0000 - 2.0000i
ans =
   1.0000 + 2.0000i

无穷量(Inf)与非数值量(NaN)

  • Inf:0做了分母或者超出了双精度浮点数的表示范围
  • NaN(Not a Number):0/0或者Inf/Inf等非正常运算产生的
    • 两个NaN是不相等的
>> 1/0
ans =
   Inf
>> log(0)
ans =
  -Inf
>> 0/0
ans =
   NaN

数值的显示格式

format short       %5位定点显示格式,为MATLAB的默认显示格式
format short e     %5位科学计数法显示
format long
format long e      %15位
format bank        %保留两位小数
format rat            %有理分数的近似显示
>> x = 1.2
x =
    1.2000
>> format long
>> x
x =
   1.200000000000000
>> format bank
>> x
x =
          1.20
>> format rat
>> x
x =
       6/5     
>> format short
>> x
x =
    1.2000

format只改变数值的显示格式,数值运算不受影响,按双精度浮点运算进行

确定数值类型的函数

calss(A)                      %返回A的类型名称
isa(A,'class_name')     %判断A是否为calss_name类型
isnumeric(A)               %判断A是否为一个数值类型
isinteger(A)                 %是否为整数
isfloat(A)                     %是否为浮点类型
isreal(A)                      %是否为实数
isnan(A)                      %是否为NaN型
isInf(A)                       %是否为无穷量
isfinite(A)                   %是否有限

常见常量

i或j         %虚数单位
pi            %圆周率
eps          %浮点数的最小分辨率,当某数的绝对值小于次量是认为为0,
realmin   %最小浮点数,2^-1022
realmax   %最大浮点数,2^1023

字符串

字符串在MATLAB中用单引号标示的,字符串的存储是按字符串中的字符单个存储的,存储的是它们各自的ASCII码值,字符串可以看做是一个字符数组。

运算符

算术运算符

矩阵算术运算符
运算符说明
+矩阵加法
-矩阵减法
*矩阵乘法
/右除 X * B = A 的解,即X = A/B
\左除A * X = B的解,即X = A\B
^乘幂
'矩阵共轭
>> A = [1 2;3 4]
A =
     1     2
     3     4
>> B = [5 6;7 8]
B =
     5     6
     7     8
>> C = A*B
C =
    19    22
    43    50
>> C = A + B
C =
     6     8
    10    12
>> C = A - B
C =
    -4    -4
    -4    -4
>> C = A/B
C =
    3.0000   -2.0000
    2.0000   -1.0000
>> C = A\B
C =
    -3    -4
     4     5
>> C = A'
C =
     1     3
     2     4
数组算术运算符

由于数组的加法和减法与矩阵相同,所以不多加赘述,矩阵的运算就是线代书定义的那样,是把矩阵看做是一个整体单位,而两个数组的运算是两数组相应位置上元素的运算

运算符说明
.*数组乘法,C = A .* B C(i,j)=A(i,j)*B(i,j)
./数组右除,C = A ./ B C(i,j)=A(i,j)/B(i,j)
.\数组左除,C = A . B C(i,j) = B(i,j)/A(i,j)
.^数组乘幂,C=A .^ B C(i,j)=A(i,j) ^B(i,j)
.'将数组进行转置,复数元素不做共轭
>> A
A =
     1     2
     3     4
>> B
B =
     5     6
     7     8
>> C = A .* B
C =
     5    12
    21    32
>> C = A ./ B
C =
    0.2000    0.3333
    0.4286    0.5000
>> C = A .\ B
C =
    5.0000    3.0000
    2.3333    2.0000
>> C = A .^ B
C =
           1          64
        2187       65536
>> C = A.'
C =
     1     3
     2     4

二维数组的表示在表示上与矩阵是一样的,所以在形式上无法区分,不同是他们之间的运算有所不同

关系运算符

运算符示例
<A < B
<=A <= B
>A > B
>=A >= B
==A == B
~=A ~= B
  1. A、B都是标量,结果是1或0的标量,A>B则为1;反之为0。
  2. A、B若有一个为标量,另一个为数组,则将标量与数组各元素比较,产生一个与运算数组行列相同的数组,数组元素或0或1。
  3. A、B均为数组时,A、B的行列必须相同,A、B数组的对应元素进行比较,产生一个与运算数组同规模的数组,数组元素或0或1。
  4. == 和 ~=对参与比较的量同时比较实部和虚部,其他运算只比较实部。
>> A
A =
     1     2
     3     4
>> B
B =
     5     6
     7     8


C = 2 == 3    %标量之间的比较
C = A > 2     %标量与数组的比较
C = A > B     %数组之间的比较

C =
     0
C =
     0     0
     1     1
C =
     0     0
     0     0

说明:

  • 关系运算虽然看做是矩阵的关系运算,但看做数组运算更加合理,因为关系运算时一对一的运算结果。

逻辑运算符

运算符名称
&
|
~
&&先决与
||先决或

具体用法其实与关系运算符的法则一样

>> C = (A < B)&(A ~= B)
C =
     1     1
     1     1

说明:

  • 先决与,只要运算符的左边为1才继续与该符号右边的量做逻辑运算
  • 先决或,当运算符左边为1时,就不需继续与该符号右边的量做逻辑运算,直接得出结果为真
  • 先决与、先决或只是针对标量的运算

转载于:https://www.cnblogs.com/LastKnight/p/10923087.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值