MATLAB数值数据
1. 数值数据类型分类
整型、浮点型、复型
1)整型
- 无符号整数:uint8,uint16,uint32,uint64
- 带符号整数:int8,int16,int32,int64
- 无符号8位整数数据范围:00000000-11111111(0~ 2 8 − 1 2^8-1 28−1)
- 带符号8位整数数据范围:10000000-01111111(
−
2
7
-2^7
−27~
2
7
−
1
2^7-1
27−1)
%0表示整数,1表示负数 - 数值数据类型转换函数
>> x=int8(129) %有符号8位整型数据最大值为127,只能转换为最大值
x =
int8
127
>> x=uint8(129) %无符号8位整型数据最大值为255
x =
uint8
129
2)浮点型
单精度型,内存中占4个字节
双精度型,内存中占8个字节,默认类型
single( )函数:将其它类型数据转换为单精度型
double( )函数:将其它类型数据转换为双精度型
>> class(4) %class( )查看数据类型
ans =
'double' %数值数据默认类型
>> class(single(4))
ans =
'single'
3)复型
实部和虚部两部分,实部和虚部默认为双精度型,虚数单位用i或j表示。
>> 6+5i
ans =
6.0000 + 5.0000i
>> 6+5j
ans =
6.0000 + 5.0000i %上述两个复数相同
real( )函数:求复数的实部
imag( )函数:求复数的虚部
另:3+4i与3+4*i
当i无具体值时,上述二者都表示复数,i为虚数符号
当i有具体值时,前者表示复数,后者表示整数
2. 设置数值数据输出格式
format命令格式:
format 格式符
format只影响数据输出格式,不影响数据的计算和存储
>> format long
>> 50/3
ans =
16.666666666666668
>> format
>> 50/3
ans =
16.6667
3. 常用数学函数
1)函数参数
调用格式:函数名(自变量)
- 函数的自变量规定为矩阵变量,也可以是标量(只有数值大小,没有方向,部分有正负之分),标量本身是矩阵的一种特例。
- 函数在运算时,是将函数逐项作用于矩阵的每个元素上,所以运算结果是与自变量同型的矩阵。
>> A=[4,2;3,6]
A =
4 2
3 6
>> B=exp(A) %exp( ) 自然指数
B =
54.5982 7.3891
20.0855 403.4288
%B中的每一个元素都是A中对应元素经函数变换而来
2)常用函数
i. 三角函数
有以弧度为单位的函数和以角度为单位的函数。若是以角度为单位的函数,则在函数名后加‘d’,以示区别。
>> sin(pi/2)
ans =
1
>> sind(90)
ans =
1
ii. abs( )函数
可以求实数的绝对值、复数的模、字符串的ASCII码值
>> abs(-4)
ans =
4
>> abs(4-3i)
ans =
5
>> abs('a')
ans =
97
>> abs('A')
ans =
65 %大写字母的ASCII码值比对应小写字母小32
iii. 取整函数
round( ):四舍五入规则取整
ceil( ):向上取整,取大于等于这个数的第一个整数
floor( ):向下取值,取小于等于这个数的第一个整数
fix( ):固定取靠近0的整数,即舍去小数取整
>> fix(-2.3)
ans =
-2
>> floor(2.3)
ans =
2
>> ceil(2.3)
ans =
3
>> round(2.3)
ans =
2
3. 函数应用举例
e.g.1分别求一个三位正整数的个位数字、十位数字和百位数字。
思路:一个三位正整数除以10的余数就是该数的个位数字。一个三位正整数除以10取整后就去掉了这个数的个位数字,将新得到的数再除以10取余数,余数就是新得到的数的个位数字,也就是原数的十位数字。 一个三位正整数除以100取整后就去掉了这个数的个位数字和十位数字,得到百位数字。
>> m=345;
>> m1=rem(m,10) %rem( ) 取余,或mod( )
m1 =
5
>> m2=rem(fix(m/10),10) %取整后取余
m2 =
4
>> m3=fix(m/100)
m3 =
3
e.g.2求[1,100]区间的所有素数。
isprime(n)判断n是否为素数,n为素数返回1,否则返回0
>> x=1:100; %生成1-100区间内整数组成的向量x
>> k=isprime(x); %生成k向量,向量元素为1或0
>> k1=find(k); %k向量中非0元素序号赋值给k1向量,即素数序号
>> p=x(k1) %输出x中的素数
p =
1 至 16 列
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53
17 至 25 列
59 61 67 71 73 79 83 89 97