Matlab系列 --- Matlab基础(一)
今天呢,我们来学习一下matlab的基础知识,包括基本的数据类型、运算符和特殊的符号以及matlab中日期和时间的方法、计时函数的引用。
一、数据类型
在matlab中有15种基本的数据类型,分别是8种整型数据、单精度浮点型、双精度浮点型、逻辑型、字符串型、单元数组、结构体类型和函数句柄。
15种基本的数据类型数据类型的示例演示:
clear all;
a1=int8(6) %8位有符号整型
a2=int16(-20) %16位有符号整型
a3=uint32(100) %32位无符号整型
a4=uint64(200) %64位无符号整型
b1=single(3.5) %单精度浮点数
b2=12 %双精度浮点数,matlab默认的数据类型
c1=true %逻辑类型
c2{1,1}=100 %单元数组型
c3='hello' %字符串型
c4.name='robin' %结构体型
d=@cos %函数句柄类型
运行结果:
a1 =
int8
6
b1 =
single
3.5000
b2 =
12
c1 =
logical
1
c2 =
1×1 cell 数组
{[100]}
c3 =
'hello'
c4 =
包含以下字段的 struct:
name: 'robin'
d =
包含以下值的 function_handle:
@cos
在命令行模式下,输入whos可以显示这些变量的类型
whos命令
二、数值类型
在matlab中,数值类型分为整数和浮点数,整数分为有符号整数和无符号整数,浮点数分为单精度浮点数和双精度浮点数。下面介绍整数、浮点数、复数以及数值的显示格式等。
1、整数
在matlab中共有8种整数类型,其中4中为有符号整型,4种为无符号整型。默认的数值类型为双精度浮点型,一般通过整型函数将浮点型数据转换为整型数据。
整数类型整数的实例程序:
clear all;
a=24; %双精度浮点型
b1=int8(a)
b2=int16(a)
b3=int32(a)
b4=int64(a)
c='hello' %字符串型
int8(c) %通过int8将字符串类型转换为有符号整型
输出结果:
在matlab种存在许多的取整函数,可以采用不同的方法将小数转换为整数。
浮点数的取整函数示例:
clear all;
a1=round(2.5) %3
a2=round(-2.4) %-2
a3=round(-2.5) %-3
b1=fix(-3.6) %-3
b2=fix(-3.5) %-3
c1=floor(4.9) %4
c2=floor(-4.2) %-5
d1=ceil(4.2) %5
d2=ceil(-4.4) %-4
2、浮点数
在matlab种,浮点数包括单精度浮点数(single)和双精度浮点数(double)。其中双精度浮点数是matlab中默认的数据类型。
在matlab中,双精度浮点数采用8个字节,即64位来表示,其中第63位表示符号,0为正,1为负,即52-62位表示指数部分,第0-51位表示小数部分。
在matlab中,单精度浮点数采用4个字节,即32位来表示,其中第31位为符号位,0为正,1为负,第23-30位为指数部分,0-22位为小数部分。单精度浮点数比双精度浮点数能表示的数值范围和数值精度都小。
示例:
clear all;
a=123.34 %双精度浮点型
b=single(a) %转换为单精度浮点型
c1=double(a) %转换为双精度浮点型
c2=int16(a) %转换为16位有符号整型
c3=int32(a) %转换为32位有符号整型
d1=[realmin('single') realmax('single')] %得到单精度浮点型的取值范围
d2=[realmax('double') realmax('double')] %得到双精度浮点型的取值范围
运行结果:
a =
123.3400
b =
single
123.3400
c1 =
123.3400
c2 =
int16
123
c3 =
int32
123
d1 =
1×2 single 行向量
1.0e+38 *
0.0000 3.4028
d2 =
1.0e+308 *
1.7977 1.7977
3、复数
复数是对实数的扩展,包含实部和虚部两部分,虚部的单位的-1的平方根。在matlab中,采用i或j表示虚部的单位。可以采用赋值语句直接产生复数,也可以采用函数complex()来产生复数。
示例:
clear all;
z1=3+4i %复数
a1=real(z1) %复数的实部
a2=imag(z1)%复数的虚部
b1=abs(z1)%复数的模
b2=angle(z1)%复数的角度
c1=conj(z1)%复数的共轭复数
z2=complex(1:3,2:4) %构造三个复数
%结果为: 1.0000 + 2.0000i 2.0000 + 3.0000i 3.0000 + 4.0000i
real(z2) %1 2 3
imag(z2) %2 3 4
4、数据的显示格式
在matlab中,可以采用函数format()确定数值类型的显示格式。改变数值的显示格式之后,会一直有效,直到再次利用函数format()进行修改。
示例:
clear all;
format short
a=12.3456789
format short
a
format long
a
format long e
a
format short e
a
format bank
a
format +
a
format rational
a
format short
要将数据的显示格式恢复为原来的格式,直接嗲用 format short就会显示为原来的格式。
二、逻辑类型
matlab中的运算包括数值计算、关系计算和逻辑计算。
关系计算和逻辑计算的结果为逻辑类型。逻辑类型数据只有逻辑真和逻辑假。matlab中用1代表逻辑真,用函数true表示;用0代表逻辑假,用函数false表示。逻辑真和逻辑假都占用1个字节的存储空间。
示例:
clear all;
a1=true
a2=false
a3=true(3,4)
a4=false(3)
运行结果:
a3和a4的结果
此外,可以采用函数logical()将数值类型转换为逻辑型,任何非0数值转换为逻辑真(即1);数值0转换为逻辑假(即0)。
示例:
clear all;
a=3
logical(a)
b=0
logical(b)
c=[1.3 -3 0;2 0 4;0.01 9 1]
logical(c)
三、字符和字符串
在matlab中,字符型数据类型用char表示。字符和字符串不进行区分,将单个字符看成是字符串,都用单引号(')括起来。字符串中的每个字符占用2个字节的存储空间。
示例:
clear all;
a='My name is 张三'
b=char([65 66 67 68])
c=int8('hello')
d='张'
运行结果:
字符和字符串四、函数句柄
在matlab中,通过函数句柄来间接调用函数,函数句柄的数据类型为function_handle。函数句柄可以通过符号@后面跟函数名来创建,例如程序fhandle = @cos,创建了cos()的函数句柄,以后就可以通过函数句柄fhandle来间接调用函数cos()。
函数句柄的常用函数示例:
clear all;
f1=@cos
t=0:pi/5:pi
f1(t)
f2=@complex
f2(3,4)
运行结果:
函数句柄示例:
clear all;
f1=@char
s1=func2str(f1) %函数句柄转化为字符串
f2=str2func(s1)%字符串转换为函数句柄
functions(f1)
isa(f1,'function_handle')
isequal(f1,f2) %判断f1和f2是不是指向同一个函数
好了,今天的Matlab学到这里结束了,matlab的基础只学到了一部分,期待下次的学习,喜欢的朋友可以给我点赞哦!!!