MATLAB学习第三天(数据类型、运算符以及多种运算)

简介: MATLAB学习第三天(数据类型、运算符以及多种运算)

一、MATLAB数据类型


默认情况下,MATLAB 存储所有数值变量为双精度浮点值。其他数据类型存储文本,整数或单精度值或单个变量中相关数据的组合。


MATLAB不需要任何类型声明或维度语句。当MATLAB遇到新的变量名称时,它将创建变量并分配适当的内存空间。


如果变量已经存在,则MATLAB将使用新内容替换原始内容,并在必要时分配新的存储空间。


例如:

total = 136;

上述语句创建一个名为total的1x1矩阵,并将值136存储在其中。


MATLAB数据类型



MATLAB提供15种基本数据类型,分别是8种整型数据、单精度浮点型、双精度浮点型、逻辑型、字符串型、单元数组、结构体类型和函数句柄。每种数据类型存储矩阵或数组形式的数据。矩阵或数组的最小值是0到0,并且是可以到任何大小的矩阵或数组。


下表显示了MATLAB中最常用的数据类型:下表显示了MATLAB中最常用的数据类型:

数据类型 描述
int8 8位有符号整数
uint8 8位无符号整数
int16 16位有符号整数
uint16 16位无符号整数
int32 32位有符号整数
uint32 32位无符号整数
int64 64位有符号整数
uint64 64位无符号整数
single 单精度数值数据
double 双精度数值数据
logical 逻辑值为10,分别代表truefalse
char 字符数据(字符串作为字符向量存储)
单元格阵列 索引单元阵列,每个都能够存储不同维数和数据类型的数组
结构体 C型结构,每个结构具有能够存储不同维数和数据类型的数组的命名字段
函数处理 指向一个函数的指针
用户类 用户定义的类构造的对象
Java类 从Java类构造的对象


示例


使用以下代码创建脚本文件(datatype1.m):

str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)


当上述代码被编译和执行时,它产生以下结果:

Trial>> datatype1
str =
    'Hello World!'
n =
        2345
d =
        2345
un =
  uint32
   790
rn =
   5.6789e+03
c =
  int32
   5679


数据类型转换


MATLAB提供了各种用于将一种数据类型转换为另一种数据类型的函数。 下表显示了数据类型转换函数:

函数 描述说明
char 转换为字符数组(字符串)
int2str 将整数数据转换为字符串
mat2str 将矩阵转换为字符串
num2str 将数字转换为字符串
str2double 将字符串转换为双精度值
str2num 将字符串转换为数字
native2unicode 将数字字节转换为Unicode字符
unicode2native 将Unicode字符转换为数字字节
base2dec 将基数N字符串转换为十进制数
bin2dec 将二进制数字串转换为十进制数
dec2base 将十进制转换为字符串中的N数字
dec2bin 将十进制转换为字符串中的二进制数
dec2hex 将十进制转换为十六进制数字
hex2dec 将十六进制数字字符串转换为十进制数
hex2num 将十六进制数字字符串转换为双精度数字
num2hex 将单数转换为IEEE十六进制字符串
cell2mat 将单元格数组转换为数组
cell2struct 将单元格数组转换为结构数组
cellstr 从字符数组创建字符串数组
mat2cell 将数组转换为具有潜在不同大小的单元格的单元阵列
num2cell 将数组转换为具有一致大小的单元格的单元阵列
struct2cell 将结构转换为单元格数组


数据类型确定


MATLAB提供了用于识别变量数据类型的各种函数。

下表提供了确定变量数据类型的函数:

函数 描述说明
is 检测状态
isa 确定输入是否是指定类的对象
iscell 确定输入是单元格数组
iscellstr 确定输入是字符串的单元格数组
ischar 确定项目是否是字符数组
isfield 确定输入是否是结构数组字段
isfloat 确定输入是否为浮点数组
ishghandle 确定是否用于处理图形对象句柄
isinteger 确定输入是否为整数数组
isjava 确定输入是否为Java对象
islogical 确定输入是否为逻辑数组
isnumeric 确定输入是否是数字数组
isobject 确定输入是否为MATLAB对象
isreal 检查输入是否为实数数组
isscalar 确定输入是否为标量
isstr 确定输入是否是字符数组
isstruct 确定输入是否是结构数组
isvector 确定输入是否为向量
class 确定对象的类
isscalar 确定输入是否为标量
validateattributes 检查数组的有效性
whos 在工作区中列出变量,其大小和类型


示例


使用以下代码创建脚本文件:

x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)


运行文件后,产生以下结果:

x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 1177/50
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =
          1          2          3
ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0


二、MATLAB运算符


MATLAB运算符


数组中唯一的值运算符是一个符号,它将要执行的数学或者逻辑操作传达给编译器执行。


MATLAB 设计工作主要是对整个矩阵和阵列。因此,运算符在 MATLAB 工作标和非标量数据。

MATLAB 的基本运算类型:

  • 算术运算符
  • 逻辑运算符
  • 关系运算符
  • 位运算
  • 集合运算


算术运算符(算术运算符详解)


MATLAB 的工作针对的是整个矩阵和阵列,它允许两种不同类型的算术运算:

  • 矩阵算术运算
  • 阵列算术运算


矩阵的算术运算是线性代数中的定义相同。执行数组操作,无论是在一维和多维数组元素的元素。

矩阵运算符和数组运算符是有区别的句号(.)符号。然而,由于加法和减法运算矩阵和阵列是相同的,操作者这两种情况下是相同的。下表给出了运算符的简要说明:


运算符 描述
+ 加法或一元加号。A + B将A和B。 A和B必须具有相同的尺寸,除非一个人是一个标量。一个标量,可以被添加到任何大小的矩阵。
- 减法或一元减号。A - B,减去B从A和B必须具有相同的大小,除非是一个标量。可以从任意大小的矩阵中减去一个标量。
*

矩阵乘法;是一个更精确的矩阵A和B的线性代数积,

矩阵乘法对于非纯量A和B,列一个数必须等于B.标量可以乘以一个任意大小的矩阵的行数。

.* 数组的乘法;A.*B是数组A和B的元素积,A和B必须具有相同的大小,除非A、B中有一个是标量。
/ 斜线或矩阵右除法;B/A与B * inv(A)大致相同。更确切地说:
 B/A = (A'B')'
./ 矩阵右除法;矩阵A与矩阵B相应元素相除(A、B为同维度的矩阵)
.\ 反斜杠或矩阵左除;如果A是一个方阵,AB是大致相同的INV(A)* B,除非它是以不同的方式计算。如果A是一个n*n的矩阵,B是一个n组成的列向量,或是由若干这样的列的矩阵,则X = AB 是方程 AX = B ,如果A严重缩小或者几乎为单数,则显示警告消息。
\ 数组左除法;A. B是元素B(i,j)/A(i,j)的矩阵。A和B必须具有相同的大小,除非其中一个是标量。
^ 矩阵的幂。X^P是X到幂P,如果p是标量;如果p是一个整数,则通过重复平方计算功率。如果整数为负数,X首先反转。对P值的计算,涉及到特征值和特征向量,即如果[ D ] = V,EIG(x),那么X^P = V * D.^P / V。
.^ A.^B:A的每个元素的B次幂(A、B为同纬度的矩阵)
' 矩阵的转置;A'是复数矩阵A的线性代数转置,这是复共轭转置。
.' 数组的转置;A.'是数组A的转置,对于复数矩阵,这不涉及共轭。


逻辑运算符(逻辑运算符详解)


MATLAB提供了两种类型的逻辑运算符和函数:

  • Element-wise -这些运算符的逻辑阵列上运行相应的元素。
  • Short-circuit -这些运算上的标量,逻辑表达式。

Element-wise 的逻辑运算符操作元素元素逻辑阵列。符号&,|和〜逻辑数组运算符AND,OR,NOT。

允许短路短路逻辑运算符,逻辑运算。符号 && 和 | | 是短路逻辑符 AND 和 OR。


关系运算符(关系运算符详解)


关系运算符标和非标量数据上也能正常工作。关系运算符对数组进行元素元素元素设置为逻辑1(真)的关系是真实的和元素设置为逻辑0(假),它是两个阵列,并返回一个同样大小的逻辑阵列之间的比较。


下表显示了 MATLAB 中的关系运算符:

运算符 描述
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于
~= 不等于


位运算(位运算详解)


位运算符位和执行位位操作。 &,|和^的真值表如下:

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1


假设如果A= 60,B =13,他们现在以二进制格式将如下:


A = 0011 1100


B = 0000 1101


-----------------


A&B = 0000 1100


A|B = 0011 1101


A^B = 0011 0001


~A  = 1100 0011


MATLAB提供位运算,如'位','位'和'位不操作,移位操作等各种函数


以下的表格显示了常用的按位运算:


函数 目的/作用
bitand(a, b) 当a、b是一个或数个无符号整数或无符号整数数组,返回参数a和b位和,
bitcmp(a) a的补码
bitget(a,pos) 在指定位置pos中获取位,在整数数组a中
bitor(a, b) 对数a和b按位或
bitset(a, pos) a的集合点在一个特定的位置pos
bitshift(a, k) 返回一个移到左K位,相当于乘以2K。K负值对应的位权转移或除以2|K|向负无穷舍入到最近的整数。任何溢出位都被截断。
bitxor(a, b) 对数a和b按位异或
swapbytes 交换字节顺序


集合操作符(集合运算详细讲解)


MATLAB提供各种功能集合运算,如集,交集和测试组成员等。

下表是对一些常用的设置操作的例举与描述:

函数 描述
intersect(A,B) 设置两个数组的交集;返回A和B所共有的值。返回的值按排序顺序排列。
intersect(A,B,'rows') 将A和B的每一行作为单个实体处理,并返回A和B的公共行。返回的矩阵的行按排序顺序排列。
ismember(A,B) 返回与A大小相同的数组,包含1(true),其中A的元素在其他地方的B中找到,它返回0(false)。
smember(A,B,'rows') 将A和B的每一行作为单个实体处理,并返回一个包含1(true)的向量,其中矩阵A的行也是B的行;否则,它返回0(false)。
issorted(A) 如果A的元素按排序顺序返回逻辑1(true),否则返回逻辑0(false)。输入A可以是向量,也可以是N-by-1或1-by-N的字符串数组。如果A和sort(A)的输出相等,则A被认为是排序的。
issorted(A, 'rows') 如果二维矩阵A的行按排序顺序返回逻辑1(真),否则返回逻辑0(假)。 如果A和排序(A)的输出相等,则认为矩阵A被排序。
setdiff(A,B) 设置两个数组的差值;返回不在B中的值。返回数组中的值按排序顺序排列。
setdiff(A,B,'rows')

将每一行A和B行作为单个实体处理,并返回一个不在B中的行。返回的矩阵的行按排序顺序排列。

“行”选项不支持单元格数组。

setxor 设置两个数组的异或
union 设置两个数组的并集
unique 数组中唯一的值



目录
相关文章
|
6月前
OFDM深入学习及MATLAB仿真(二)
OFDM深入学习及MATLAB仿真
283 1
|
6月前
|
编解码 网络协议 前端开发
OFDM深入学习及MATLAB仿真(一)
OFDM深入学习及MATLAB仿真
800 1
|
6月前
|
索引
matlab日常学习-------矩阵
matlab日常学习-------矩阵
73 0
|
6月前
|
算法 计算机视觉 异构计算
基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序
基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序
|
1月前
|
存储 数据处理 索引
MATLAB中的基本数据类型与变量操作
【10月更文挑战第1天】 MATLAB 是一种广泛应用于数学计算和科学研究的编程语言,其核心是矩阵运算。本文详细介绍了 MATLAB 中的基本数据类型,包括数值类型(如 `double` 和 `int`)、字符数组、逻辑类型、结构体、单元数组和函数句柄,并通过代码示例展示了变量操作方法。
122 0
|
1月前
|
Serverless
MATLAB中的矩阵与向量运算
【10月更文挑战第2天】本文全面介绍了MATLAB中的矩阵与向量运算,包括基本操作、加减乘除、转置、逆矩阵、行列式及各种矩阵分解方法。通过丰富的代码示例,展示了如何利用矩阵运算解决线性方程组、最小二乘法拟合、动态系统模拟和电路分析等问题。掌握这些运算不仅提升编程效率,还能在工程计算和科学研究中发挥重要作用。
59 1
|
6月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
matlab学习(二)
matlab学习(二)
|
5月前
|
机器学习/深度学习 存储 移动开发
MATLAB数据类型和运算符+矩阵创建
MATLAB数据类型和运算符+矩阵创建
64 1
|
5月前
|
机器学习/深度学习 数据可视化 算法
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
54 0
|
6月前
|
算法 数据安全/隐私保护
matlab学习(三)
matlab学习(三)

热门文章

最新文章

下一篇
无影云桌面