学习matlab(一)——数据类型与运算符

本章介绍MATLAB的一些基础知识,包括基础数据类型、运算符和特殊的符号等,以及matlab中日期和时间的表示方法、计时函数的应用。

目录

0.数据类型

<0>数值类型

(1)整数

(2)浮点数

(3)复数

<1>逻辑类型

<2>字符和字符串

<3>函数句柄

<4>单元数组

<5>结构体类型

1.数据显示格式

2.运算符

<1>算术运算符

<2>关系运算符

<3>逻辑运算符

<4>运算优先级

3.日期和时间的表示

4.常量与变量


0.数据类型

在MATLAB中一共有15种数据类型,分别是8种整型数据、单精度浮点型、双精度浮点型、逻辑型、字符串型、单元数组、结构体类型和函数句柄,如下表所示:

数据类型说明
int8、int16、int32、int64有符号整型
uint8、uint16、uint32、uint64无符号整型
single单精度浮点型
double双精度浮点型
logical逻辑型
char字符串型
cell单元数组型
struct结构体型
function_handle函数句柄型

输入如下命令,在工作区打开各个变量观察:

>> a1 = int8(-16);//整型
>> b1 = single(2.5);//浮点型
>> c1 = 'hello';//字符串型
>> d1 = false;//逻辑型
>> e1.name = 'TOM';//结构体型
>> f1{1,1} = 100;//数组型
>> g1 = 12;//双精度浮点型
>> h = @cos;//函数句柄型

由g1可知,matlab输入数据的类型默认都是double类型。输入whos也可以查找到相关的变量信息。

<0>数值类型

在MATLAB中,数值类型分为整数和浮点数,整数分为有符号整数和无符号整数,浮点数分为单精度浮点数和双
精度浮点数。下面介绍整数、浮点数和复数,以及数值的显示格式等。

(1)整数
 

>> a = 24;
>> b1 = int8(a);
>> c = 'hello';
>> b2 = int8(c);

在MATLAB中,还有很多的取整函数,可以采用不同的方法将小数转换为整数。

函数说明
round向最接近的整数取整,如果小数为0 5,则取绝对值大的整数
fix向0取整
floor不大于该数的最接近整数
ceil不小于该数的最接近整数

(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位为小数部分。单精度浮点数比双精度浮点数能够表示的数值范围和数值精度都小。

>> d1=[realmin('single') realmax('single')];
>> d2=[realmin('double') realmax('double')];

通过该命令可以知道某种数据类型的取值范围。

(3)复数

复数是对实数的扩展,包含实部和虛部两部分,虛部的单位是-1的平方根。在MATLAB中,采用i或j表示虛部的单位。可以采用赋值语句直接产生复数,也可以采用函数complex( )来产生复数。

函数说明
complex(a, b)创建复数,a为实部,b为虚部
real(z)得到复数z的实部
imag(z)得到复数z的虚部
abs(z)得到复数z的模
angle(z)得到复数z的角度
conj(z)得到复数z的共轭复数

<1>逻辑类型

MATLAB中的运算包括数值计算、关系计算和逻辑计算。关系计算和逻辑计算的结果为逻辑类型。逻辑类型数据只有逻辑真和逻辑假。MATLAB中用1代表逻辑真,用函数true表示;用0代表逻辑假,用函数false表示。逻辑真和逻辑假都占用1个字节的存储空间。此外,可以采用函数logical( )将数值型转换为逻辑型,任何非0数值转换为逻辑真(即1);数值0转换为逻辑假(即0)。

<2>字符和字符串

在MATLAB中,字符型数据类型用char表示。字符和字符串不进行区分,将单个字符看成是的字符串,都用单引号(')括起来。字符串中的每个字符占用2个字节的存储空间。

<3>函数句柄

在MATLAB中,通过函数句柄来间接调用函数,函数句柄的数据类型为function_ handle。 函数句柄可以通过符号
@后面跟函数命令来创建,例如程序fhandle=@cos,创建了函数cos( )的函数句柄,以后就可以通过函数句柄fhandle来间接调用函数cos( )。

函数说明
func2str(fhandle)将函数句柄转换为字符串
str2func(str)将字符串转换为函数句柄
functions(fhandle)返回包含函数信息的结构体变量
isa(a, 'function_handle')判断是否为函数句柄
isequal(fhandle1, fhandle2)检测两个函数句柄是否对应同一函数

<4>单元数组

单元数组是一种比较特殊的数据类型,每个元素都以单元的形式存在。在MATLAB中,采用大括号({})建立单元数组,也可以采用函数cell( )来建立单元数组。在获取单元数组的元素时,也采用大括号表示下标。

1.函数cell( )  2.函数celldisp( ) // 修改元胞数组名字 3.函数cellplot( )//显示元胞数组成员的字节及内容  4.函数iscell( )//判断是否为元胞数组,返回值为布尔值 5.函数num2cell( )//将矩阵转化为元胞数组  6.函数cell2struct( )//例如cell2struct(结构体成员内容元胞,结构体成员名称元胞,2);

>> c1 = {'USA','China';[0,1,2,3,4,5],100};
>> c2{2,2} = [];
>> c3 = {1,1};
>> c4{1,1};//错误
>> c = {'USA','China';[0,1,2,3,4,5],100};
>> c{2,2} = [];
>> c{1,1};

单元数组操作如下:

>> c={'中国','China';[1:4;2:5],10};
>> c{2,4}=100;//必须赋值,否则报错
>> c(1,:);
>> c(:,3)=[];
>> d={'北京','Beijing';[],3};
>> e=[c,d];

<5>结构体类型

结构体是按照成员变量名组织起来的不同数据类型数据的集合。结构体类似于C语言的结构体数据。每个成员变量用指针操作符“.”表示,例如A.name表示结构体变量A的name成员变量。在MATLAB中结构体类型常用的函数如表所示:

函数说明
struct建立结构体变量
isstruct是否为结构体
isfield是否为结构体成员
fleldnames结构体变量成员的名字
substruct子结构体
struct2cell结构体变量转换为单元型变量
orderfields对结构体变量的成员排序
getfield得到结构体的成员变量
setfield设置结构体的成员变量
rmfield删除结构体的成员变量
cell2struct单元型变量转换为结构体变量

1.数据显示格式

在MATLAB中,可以采用函数format( )确定数值类型的显示格式。改变数值的显示格式后会一直有效,直到再次利用函数format()进行修改。

format函数格式说明
format short或format('short')默认显示,保留小数点后4位
format long或format('long')有效数字16位
format long e有效数字16位加3位指数。
format short e有效数字5位加3位指数
format bank或format('bank')保留两位小数位
format +或format('+')只给出正、负
format rational或format (' rational’)以分数形式表示
format hex或format('hex')16进制数
format long g15位有效数
format short g5位有效数

2.运算符

在MATLAB中,提供了丰富的运算符,主要包括算数运算、关系运算和逻辑运算。算数运算用于数值计算。关系运算和逻辑运算的返回值为逻辑型变量,其中1代表逻辑真,0代表逻辑假。

<1>算术运算符

MATLAB提供的基本算术运算有:加(+)、减(-)、乘(*) 、除(1)和乘方(^)。常用的算数运算符如表所示。对于标量和数组,是以元素为单元进行运算。

标量和数组矩阵功能
++
--
.**
.//左除
.\\右除
.^^乘方
.''转置

<2>关系运算符

关系运算用于比较两个操作数的大小,返回值为逻辑型变量。在MATLAB中,关系运算符如表所示。当2个操作数都是数组或矩阵时,这2个操作数的维数必须相同,否则会显示出错信息。

关系运算符说明函数
<小于lt
<=小于等于le
>大于gt
>=大于等于ge
==恒等于eq
~=不等于ne

<3>逻辑运算符

在MATLAB中,有两个快速逻辑运算符,逻辑与(&&)和逻辑或(||),如表所示。&&运算符和&运算符非常相近。&&运算符,在参与运算的第一个操作数为假时,直接返回假,不再计算第二个操作数。||操作符,在参与运算的第一个操作数为真时,直接返回真,不再判断第二个操作数。

运算符说明
&&快速逻辑与,当第一个操作数为假时,直接返回假,否则和&相同
||快速逻辑或,当第一个操作数为真时,直接返回真,否则和|相同

在MATL AB中,可以对二进制数进行逐位逻辑运算,并将运算的结果转换为十进制数。可以利用函数dec2bin将十进制数转化为二进制数。

函数函数说明
bitand(A,B)逐位逻辑与
bitor(A,B)逐位逻辑或
bitcmp(A,B)逐位逻辑非
bitxor(A,B)逐位逻辑异或

<4>运算优先级

在MATLAB中进行算数运算、逻辑运算和关系运算时,不同的运算符有不同的优先级。在进行运算时,按照运算符的优先级,从高到低进行运算。对于相同优先级的运算符,按照从左到右的顺序进行。

3.日期和时间的表示

在MATLAB中,采用函数clock( )获取当前的日期,为一个向量,分别表示年、月、日、时、分和秒;函数date()获得当前的日期;函数now( )返回采用双精度数据表示的当前日期;函数calender( )显示当月的日历;函数weekday( )产生星期几,返回值包括星期的数字和星期的字符串;函数eomday( )返回一个月的最后一天。

在MATLAB中,提供了3种表示日期的格式,分别是双精度日期、字符串以及数值向量。这些日期格式可以互相转换,通过函数datestr( )、函数datevec( )和函数datenum( )。函数datestr()将日期数字和日期向量转化为日期字符串。函数datenum( )将日期字符串和日期向量转化为数字。函数datevec( )将日期数字和日期字符串转化为日期向量。

采用函数tic、toc、 cputime和etime等进行计时。函数tic和函数toc:函数tic启动-一个秒表,函数toc停止这个秒表,并计算出所经历的时间。这两个函数配合使用,可以计算程序或函数的运行时间。函数cputime:该函数返回用秒表示的、从当前的Matlab启动之后所用的CPU时间,单位为秒。函数etime(t1, t0):该函数返回参数和之间的时间,单位为秒。

4.常量与变量

在MATLAB中,有一-些常量已经预先进行了定义,这些常量如表所示。在MATLAB中,用INF 或inf表示无穷大。MATLAB允许的最大数是21024,如果超过这个数,就被认为是无穷大。

常量说明
ANS或ans默认变量名,保存最后一次运算的结果
pi圆周率
INF或inf无穷大
NaN或nan不定值0/0
realmax最大的正实数
realmin最小的正实数
eps浮点数的相对误差e
i或j复数单位,-1 的平方根。
nargin函数的输入参数个数
nargout函数的输出参数个数
varargin可变的输入参数个数
varargout可变的输出参数个数
beep使计算机发出“嘟嘟”声

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值