第三课 matlab 数值数据

第三课 matlab 数值数据


matlab 的数值类型比较丰富,有数值型、字符串型、结构、单元等。

一、数值类型的分类

matlab 数值类型包括整型、浮点型、复数型。系统给不同的数据类型分配了不同大小的内存单元。 因此数据的表示范围就确定了。

整型

  • 无符号整数:

    无符号8位整数(范围:0~ 2 8 2^8 28-1)

    无符号16位整数(范围:0~ 2 16 2^{16} 216-1)

    无符号32位整数(范围:0~ 2 32 2^{32} 232-1)

    无符号64位整数(范围:0~ 2 64 2^{64} 264-1)

  • 带符号整数:

    带符号8位整数(范围: − 2 7 -2^{7} 27~ 2 7 2^{7} 27-1)

    带符号16位整数(范围: − 2 15 -2^{15} 215~ 2 15 2^{15} 215-1)

    带符号32位整数(范围: − 2 31 -2^{31} 231~ 2 31 2^{31} 231-1)

    带符号64位整数(范围: − 2 63 -2^{63} 263~ 2 63 2^{63} 263-1)

注意:当数值超过该数据类型最大值时,用最大值表示:

x=int8(129)

x =

  int8

   127

浮点型

浮点型数据分为单精度型和双精度类型,单精度型实数在内存中占用4个字节,而双精度型实数在内存中占用8个字节,所以双精度型的数据精度更高。

在 matlab 中,数据默认为双精度类型。

class(4)

ans =

double

可以使用 single 函数,将其他类型的数据转换为单精度型.。

>> class(single(4))

ans =

single

使用 double 函数,将其他类型的数据转换为双精度型。

>> class(double(4))

ans =

double

复数型

复型数据包括实部和虚部两个部分,实部和虚部默认为双精度型,虚数单位用 iI 来表示。

>> 6+5i

ans =

   6.0000 + 5.0000i

real 函数:

求复数的实部

>> real(6+5i)

ans =

     6

imag 函数:

求复数的虚部

>> imag(6+5i)

ans =

     5

数据的输出格式

format 命令的格式:

format 格式符

例如:

>> format long
>> 1/3

ans =

   0.333333333333333

注意:

  • format 命令的默认格式是 shorshort
  • format 命令只影响数据输出格式,而不影响数据的计算和存储。

二、 常用的数学函数

函数调用格式

函数名(函数自变量的值)

函数定义

函数的自变量规定为矩阵变量,当然也可以是标量,标量本身是矩阵的一种特例。

函数在运算时是将函数逐项作用于矩阵的每个元素上所以最后运算的结果就是一个与自变量同型的矩阵。

例子
>> A=[4,2;3,6]

A =

     4     2
     3     6

>> B=exp(A)

B =

   54.5982    7.3891
   20.0855  403.4288

常用的数学函数的应用

  • 三角函数有以弧度为单位的函数和以角度为单位的函数,如果是以角度为单位的函数就在函数名后面加 d ,以示区别。

    >> sin(pi/2)
    
    ans =
    
         1
    
    >> sind(90)
    
    ans =
    
         1
    
  • abs 函数可以求实数的绝对值、复数的模、字符串的 ASCII 码值。

    >> abs(-4)
    
    ans =
    
         4
    
    >> abs(3+4i)
    
    ans =
    
         5
    
    >> abs('a')
    
    ans =
    
        97
    
  • 用于取整的函数有fix、floor、ceil、round。

    round 函数按照四舍五入的规则取整。

    >> round(6.4)
    
    ans =
    
         6
    
    >> round(6.5)
    
    ans =
    
         7
    

    ceil 函数是向上取整,取大于等于这个数的第一个整数。

    >> ceil(-6.6)
    
    ans =
    
        -6
    
    >> ceil(6.6)
    
    ans =
    
         7
    

    floor 函数是向下取整,取小于等于这个数的第一个整数。

    >> floor(6.6)
    
    ans =
    
         6
    
    >> floor(-6.6)
    
    ans =
    
        -7
    

    fix 函数是固定取靠近 0 的那个整数,即舍去小数取整。

    >> fix(6.6)
    
    ans =
    
         6
    
    >> fix(-6.6)
    
    ans =
    
        -6
    

常用函数的应用例子

  • 分别求一个三位正整数的个位数字、十位数字和百位数字。

    解题思路:

    一个三位正整数除以10的余数就是该数的个位数字。

    一个三位正整数除以10取整后就去掉了这个数的个位数字,将新得到的数再除以10取余数,余数就是新得到的数的个位数字,也就是原数的十位数字。

    一个三位正整数除以100取整后就去掉了这个数的个位数字和十位数字,得到百位数字。

    >> m=123
    
    m =
    
       123
    
    >> m1=rem(m,10)
    
    m1 =
    
         3
    
    >> m2=rem(fix(m/10),10)
    
    m2 =
    
         2
    
    >> m3=fix(m/100)
    
    m3 =
    
         1
    
    
  • 求[1,100]区间的所有素数

    MATLAB提供了一个判断n是否素数的函数isprime(n),当n是素数时返回1,否则返回0。

    >> a=1:100;
    >> k=isprime(a);
    >> k1=find(k);
    >> y=a(k1)
    
    y =
    
         2     3     5     7    11    13    17    19    23    29    31    37    41    43    47    53    59    61    67    71    73    79    83    89    97
    
    

1


* 求[1,100]区间的所有素数

MATLAB提供了一个判断n是否素数的函数isprime(n),当n是素数时返回1,否则返回0。

a=1:100;
k=isprime(a);
k1=find(k);
y=a(k1)

y =

   2     3     5     7    11    13    17    19    23    29    31    37    41    43    47    53    59    61    67    71    73    79    83    89    97


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值