Matlab数值数据类型的分类
class函数:查看数值的数据类型
1. 整型
Matlab提供了数据类型转换函数来实现数据类型的转换,例如,uint8函数将数值数据转换为无符号8位整数,int8函数将数值数据转换为带符号8位整数。
>> x=int8(95.6)
x =
int8
96
2. 浮点型
single函数:将其他类型的数据转换为单精度型。
double函数:将其他类型的数据转换为双精度型。
数值数据默认是双精度型。
>> class(4)
ans =
'double'
>> class(single(4))
ans =
'single'
3. 复型
复型数据包括实部和虚部两个部分,实部和虚部默认为双精度型,虚数单位用 i 或 j 来表示。
real函数:求复数的实部
imag函数:求复数的虚部
>> x=6+5i
x =
6.0000 + 5.0000i
>> y=real(x)
y =
6
>> y=imag(x)
y =
5
数值数据的输出格式
format命令的格式:只影响数据的输出格式
>> format long //后面的数据输出格式都是long型
>> 50/3
ans =
16.666666666666668
>> 50/6
ans =
8.333333333333334
>> format //后面的数据输出格式都是默认的double型
>> x=50/3
x =
16.6667
数学函数
函数的调用格式为:
函数名函数自变量的值函数的自变量规定为矩阵变量,也可以是标量,标量本身是矩阵的一种特例。
函数在运算时是将函数逐项作用于矩阵的每个元素上所以最后运算的结果就是一个与自变量同型的矩阵。
>> A=[4,2;3,6] //创建一个矩阵,分号;为间隔表示下一行
A =
4 2
3 6 //矩阵A
>> B=exp(A) //对矩阵A调用exp函数赋给矩阵B
B = e^A 逐个元素运算
54.5982 7.3891
20.0855 403.4288
1. 三角函数
三角函数有以弧度为单位的函数和以角度为单位的函数,如果是以角度为单位的函数就在函数名后面加“d”,以示区别。
>> sin(pi/2)
ans =
1
>> y=sind(90)
y =
1
2.abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。
>> abs(-4)
ans =
4
>> abs(3+4j)
ans =
5
>> abs('a')
ans =
97
3. 用于取整的函数有fix、floor、ceil、 round。
round函数按照四舍五入的规则取整。
ceil函数是向上取整,取大于等于这个数的第一个整数。
floor函数是向下取整,取小于等于这个数的第一个整数。
fⅸ函数是固定取靠近0的那个整数,即舍去小数取整。
>> round(4.7)
ans =
5
>> fix(-3.2)
ans =
-3
>> floor(3.6)
ans =
3
>> ceil(-3.8)
ans =
-3
例1:用Matlab实现求一个三位正整数的个位数字、十位数字和百位数字。
求余可以用rem函数或者mod函数
>> m=345; //加一个分号; 可以不输出该行的结果,与下面的一行视作一行处理。
>> m1=rem(m,10)
m1 =
5
>> m2=rem(fix(m/10),10)
m2 =
4
>> m3=fix(m/100)
m3 =
3
>>
例2:用Matlab实现求区间1到100之间的所有素数。
Matlab提供了一个判断n是否素数的函数isprime(n)(当n是素数时返回1,否则返回0。
>> x=1:100; //类似于linux,x依次等于1到100之间连续的整数。
>> k=isprime(x);
>> k1=find(k); //find()函数的基本功能是返回向量或者矩阵中不为0的元素的位置索引。
>> p=x(k1); //x(k1)类似于数组,k1是对应素数的下标
>> 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