互联网@时事传播散文读书

Matlab系列 --- Matlab基础(一)

2019-04-19  本文已影响103人  307656af5a04

今天呢,我们来学习一下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()进行修改。

函数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的基础只学到了一部分,期待下次的学习,喜欢的朋友可以给我点赞哦!!!

上一篇下一篇

猜你喜欢

热点阅读