目录
1 数据类型的分类
1.1 整型
Matlab中的整型数据类型主要分为两大类:
- 无符号整型:无符号8位整数,无符号16位整数,无符号32位整数,无符号64位整数。
- 带符号整型:带符号8位整数,带符号16位整数,带符号32位整数,带符号64位整数。
其中,无符号8位整数的数据范围为:00000000~11111111(0~);
有符号的8位整型数据范围为:1000000~01111111(~)(二进制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 浮点型
浮点型数据主要分为两大类:
- 单精度类型
- 双精度类型
其中有两个转化函数:
- 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 short | 5位定点表示 |
format long | 15位定点表示 |
format short e | 5位浮点表示 |
format long e | 15位浮点表示 |
format hex | 16进制格式表示 |
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
好了,如果大家有很多不知道的不要着急,专栏后续还会更新,进行具体介绍,欢迎关注我哦!
如有不对,敬请批评指正。