Matlab语言之数值数据

目录

1  数据类型的分类

1.1  整型

1.2  浮点型

1.3  复数型

2  数据的输出格式

3  常用数学函数

应用举例


1  数据类型的分类

1.1  整型

Matlab中的整型数据类型主要分为两大类:

  1. 无符号整型:无符号8位整数,无符号16位整数,无符号32位整数,无符号64位整数。
  2. 带符号整型:带符号8位整数,带符号16位整数,带符号32位整数,带符号64位整数。

其中,无符号8位整数的数据范围为:00000000~11111111(0~2^8-1);

有符号的8位整型数据范围为:1000000~01111111(-2^7~2^7-1)(二进制01,有符号的符号占1位)

例如以下例子输入

>> x = int8(129)  %带符号8位整型最大为127,只能输出最大值127

输出为
x = 

  127

>> x = uint8(129)  %无符号8位整型最为255,可以输出129

输出为
x = 

  129

同理,其它整型代码只需要改变int后数字即可

x = int16(129) 
y = int32(129) 
z = int64(129) 

1.2  浮点型

浮点型数据主要分为两大类:

  1. 单精度类型
  2. 双精度类型

其中有两个转化函数:

  • single函数:将其它类型转化为单精度类型,4个字节存储。
  • double函数:将其他类型转化为双精度类型,8个字节存储。
Matlab中默认数值为双精度类型,例如输入

>> class(4)   % class函数输出数据类型

输出为:

ans =

  double 

>> class(single(4))   % single转化为单精度类型

输出为:

ans =

  single 

1.3  复数型

       复型数据包括实部和虚部两个部分,实部和虚部默认都是双精度类型,虚数单位用 i 或者 j 来表示。

  • real函数:求复数的实部。
  • imag函数:求复数的虚部。
例如输入

>> 6 + 5i

ans =

   6.0000 + 5.0000i


>> real(6 + 5i)   %求实部

ans =

     6

>> imag(6 + 5i)    %求虚部

ans =

     5

2  数据的输出格式

format命令的格式为:format 格式符

具体format格式符如下表:

调用格式说明
format short5位定点表示
format long15位定点表示
format short e5位浮点表示
format long e15位浮点表示
format hex16进制格式表示
format rat以有理数形式输出结果

上表仅归纳了一些常见的,还有一些不常用的没有完全例举出来。输入输出例子如下:

>> format long   % 15位定点表示
>> 50/3

ans =

  16.666666666666668


>> format     % 系统默认5位定点表示
>> 50/3

ans =

   16.6667


>> format short    % 5位定点表示
>> 50/3

ans =

   16.6667


>> format short e     % 5位浮点表示
>> 50/3

ans =

   1.6667e+01


>> format long e    %15位浮点表示
>> 50/3

ans =

     1.666666666666667e+01


>> format rat   % 有理数表示
>> 50/3

ans =

      50/3     

3  常用数学函数

(1)函数的调用格式为:函数名(函数自变量的值)

>> a = [1 2;3 4]   % 输入矩阵,分号区分行,空格或者逗号区分列

a =

     1     2
     3     4

>> b = exp(a)    % exp(x)函数为e的x次方,对矩阵a取e的a次方即矩阵每个值都计算

b =

    2.7183    7.3891
   20.0855   54.5982

(2)三角函数有以弧度和角度为单位的函数。如果是以弧度为单位,就是sin()函数;如果是以角度为单位的函数,就在sin后面加上一个d,即sind()函数

>> sin(pi/2)   % pi为Matlab中的常量,可直接使用。以弧度为变量。

ans =

     1


>> sin(90)    % 弧度为90的sin值

ans =

    0.8940


>> sind(90)   % 角度为90度的sin值

ans =

     1

其它三角函数同以上一样,这里就不再赘述。

(3)abs函数可以求实数的绝对值、复数的模。字符串的ASCII值。具体如下:

>> abs(-4)   % -4的绝对值

ans =

     4

>> abs(3 + 4i)    % 求该复数的模

ans =

     5

 
>> abs('a')    %求对应字母的ASCII码值

ans =

    97

(4)用于小数取整的函数有:

  • fix()函数:直接舍去小数部分
  • round()函数:按照四舍五入的规则取整。
  • ceil()函数:向上取整,即大于等于这个数的第一个整数。
  • floor()函数:向下取整,即小于等于这个数的第一个整数。
% 四舍五入

>> round(4.4)

ans =

     4

>> round(4.5)

ans =

     5

% 直接舍去小数

>> fix(4.5)

ans =

     4

>> fix(4.1)

ans =

     4

% 向上取整,取大于等于这个数的第一个整数

>> ceil(4.1)

ans =

     5

>> ceil(4.6)

ans =

     5

>> ceil(3.9)

ans =

     4

% 向下取整,取小于等于这个数的第一个整数

>> floor(4.1)

ans =

     4

>> floor(4.6)

ans =

     4

>> floor(3.9)

ans =

     3

应用举例

(1)编程分别求一个三位数的正整数的个位、十位、百位。(提示:取余数函数为rem())

(2)编程求[1,100]区间的所有素数。(提示:Matlab自带求素数函数为isprime())

参考代码如下

>> m = 345;  % 三位数m

>> m1 = rem(m,10)   % 除10取余求个位

m1 =

     5

>> m2 = rem(fix(m/10),10)   % 除10舍去小数,再进行取余求得十位

m2 =

     4

>> m3 = fix(m/100)    %除100,直接舍去小数求得百位

m3 =

     3
>> x = 1:100;   % 从1到100建立一个1x100的矩阵

>> k = isprime(x);   % isprime是素数返回1,不是返回0。得到k为1x100的01矩阵

>> k1 = find(k);   % 查找函数,返回非0元素的位置

>> p = x(k1)    % 根据查找的位置对应x矩阵中的数,得到p

p =

  列 1 至 14

     2     3     5     7    11    13    17    19    23    29    31    37    41    43

  列 15 至 25

    47    53    59    61    67    71    73    79    83    89    97

好了,如果大家有很多不知道的不要着急,专栏后续还会更新,进行具体介绍,欢迎关注我哦!

如有不对,敬请批评指正。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lion丶Dream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值