int8 |
uint8 |
int16 |
uint16 |
int32 |
uint32 |
int64 |
uint64 |
single |
double |
round(x) |
fix(x) |
floor(x) |
ceil(x) |
int8(x) |
uint8(x) |
int16(x) |
uint16(x) |
int32(x) |
uint32(x) |
int64(x) |
uint64(x) |
single(x) |
double(x) |
(1)不需要提前定义
(2)注意变量名的命名格式
(3)MATLAB中有默认常量,程序已经定义好其数值
ans | pi |
eps | i,j |
NaN | Inf |
函数 | 说明 | 函数 | 说明 |
blanks(n) | 生成一个由n个空格组成的字符串 | str2double(s) | 将字符串数组转化为数值数组 |
cellstr(s) | 利用给定的字符数s组创建字符串单元数组 | strcat(s1,s2,…) | 将多个字符串串联 |
char(s1,s2,…) | 利用给定的字符串或单元数组s1、s2、…创建字符数组 | strcmp(s1,s2) | 判断字符串是否相等 |
deblank(s) | 删除字符串s尾部的空格 | strcmpi(s1,s2) | 判断字符串是否相等(忽略大小写) |
double(s) | 将字符串s转化成ASC码形式 | strjust(s1,type) | 按照指定的type调整一个字符串数组 |
findstr(s1,s2) | 在长字符串中查找短字符串 | strfind(s1,s2) | 在是字符串s1中查找s2 |
int2str(x) | 将整数型转换为字符串 | strncmp(s1,s2,n) | 判断前n个字符串是否相等 |
iscellstr(A) | 判断是不是字符串单元数组 | strncmpi(s1,s2,n) | 判断前n个字符串是否相等(忽略大小写) |
ischar(A) | 判断是不是字符串数组 | strrep(s1,s2,s3) | 将字符串 s1中出现的s2用s3代替 |
isletter('A') | 判断是不是字母 | strtok(s1,D) | 查找s1中的第一个给定的分隔符之前和之后的字符串 |
isspace('s') | 判断是不是空格 | strtrim(s) | 删除字符串s开始和结尾的空格 |
lower(s) | 将一个字符串写成小写 | strvcat(s1,s2,…) | 将多个字符串竖直排列 |
num2str(x) | 将数字转换成字符串 | upper(s) | 将一个字符串写成大写 |
(1)字符串是一个行向量,可用单引号“ ‘’ ”创建一个字符串
(2)计算字符串大小:size( )
(3)显示字符串:disp( )
例子:
A='GHSDHBHSBC';
disp(A);
命令行窗口就会显示:
(1)比较方法:关系运算符、字符串比较函数
(2)运用关系运算符进行比较时,比较的两个字符串长度必须相同,对应字符相互比较,关系表达式为真时返回1,关系表达式为假时返回0,返回值组成一个逻辑数组,其大小与字符串大小相同。
(3)运用字符串比较函数进行比较时,比较的两个字符串长度可以不相同
bin2dec( ) | |
dec2bin( ) | 二进制和十进制之间进行转换 |
dec2hex( ) | |
hex2dec( ) | 十进制和十六进制之间进行转换 |
base2dec( ) | 任意进制转换成十进制数 |
1、MATLAB用“1”和“0”分别代表“逻辑真”和“逻辑假”,但在运算过程中将所有非0值看作逻辑真,将0看作逻辑假。和一般的数据类型不同,逻辑类型数值只能通过数值类型转换,或者使用特殊的函数生成逻辑数组或矩阵。
2、相关函数
logical( ) | 将任意类型矩阵转换为逻辑矩阵 |
true(n) | 生成n阶逻辑真矩阵 |
false(n) | 生成n阶逻辑假矩阵 |
(1)函数句柄是一个可调用的MATLAB函数的关联,有了函数句柄这种关联,用户在任何情况下都可以通过函数句柄调用MATLAB函数,即使是超出正常的函数调用范围仍然可以。
(2)对于一些私有函数,外部函数不能直接调用,定义了函数句柄以后,外部函数可以通过函数句柄调用私有函数。
(1)可以将一个函数传递给另一个函数。
(2)可以捕获一个函数的数值供下一次使用。
(3)可以在正常范围外调用函数。
(4)可以将函数句柄以.mat文件类型保存,供下一次MATLAB运行时使用。
在函数名前加一个“@”符号就可以建立一个函数句柄,一旦创建一个函数句柄,就可以通过函数句柄调用函数,函数句柄包含函数保存的绝对路,用户可以从任何位置调用该函数。如:
f=@sin
y=f(2*pi)
函数 | 说明 |
func2str(fhandle) | 将函数句柄转换为字符串 |
str2func('str') | 将字符串转换为函数句柄 |
functions(fhandle) | 返回包含函数信息的结构体变量 |
isa(a,'funhandle') | 判断是否为函数句柄 |
isequal( fhandle1 ,fhandle2) | 判断两个函数句柄是否对应同一函数 |
(1)结构类型是包含一组彼此相关、数据结构相同但类型不同的数据类型。结构类型的变量可以是任意一种 MATLAB数据类型的变量,也可以是一维的、二维的或者多维的数组。但是,在访问结构类型数据的元素时,需要使用下标配合字段的形式。
(2)结构体是可以存储不同类型数据的数据结构
(1)可以直接给结构体成员变量赋值建立结构体
(2)利用函数 struct( ) 建立结构体
个人理解:stu(1,2) 是查询第一个结构体的第二个数据
函数 | 说明 |
fieldnames(s) | 获取指定结构体所有成员名 |
getfield(s,'field') | 获取指定成员内容 |
isfield(s,'field') | 判断是否是指定结构体中的成员 |
orderfields(s) | 对成员按结构数组重新排序 |
rmfield(s,'field') | 删除指定结构体中的成员 |
setfield(s,'field', value) | 设置结构体成员内容 |
细胞数组是MATLAB特有的一种数据类型,组成它的元素是细胞,细胞是用来存储不同类型数据的单元,细胞数组中每个细胞存储一种类型的MATLAB数组,此数组中的数据可以是任何一种MATLAB数据类型或用户自定义的类型,其大小也可以是任意的。相同数组的第二个细胞的类型与大小可以和第一个细胞完全不同。【即单元(cell)数组】
(1)直接赋值
(2)使用 cell( ) 函数创建空细胞数组
函数 | 说明 |
cell2struct(cellArray, fields, dim) | 将细胞数组转换成结构数组 |
iscell(c) | 判断指定数组是否是细胞数组 |
struct2cell(s) | 将结构数组转换成细胞数组 |
mat2cell(A, m, n) | 将矩阵拆分成细胞数组矩阵 |
cell2mat(c) | 将细胞数组合并成矩阵 |
num2cell(A) | 将数值数组转换成细胞数组 |
celldisp(c) | 显示细胞数组内容 |
cellplot(c) | 显示细胞数组结构图 |
(1)对于单元数组,C(m,n)指的是单元数组中第m行第n列的单元,C{m,n}指的是单元数组中第m行第n列的单元的内容
MATLAB的算术运算分为矩阵运算和矩阵内元素运算,矩阵内元素运算在矩阵运算符前加 “.”,MATLAB算术运算符要求参与运算的矩阵必须是维数相同,但如果运算对象是标量和矩阵,则是标量和矩阵内每一个元素相运算。
运算符号前没加 “.” 的都是矩阵运算,满足矩阵运算规则;运算负号前加 “.” 的都是点运算,是矩阵对应元素的运算。
运算符 | 说明 | 运算符 | 说明 |
+ | .\ | 左除法 | |
- | \ | 矩阵左除法 | |
.* | 乘法 | .^ | 求幂 |
* | 矩阵乘法 | ^ | 矩阵求幂 |
./ | 右除法 | .' | 转置 |
/ | 矩阵右除法 | ' | 矩阵求秩,复数求共轭 |
1、关系运算符两侧的矩阵维数必须相同
2、关系运算是对矩阵内元素运算。如果参与运算的元素使关系运算式为真则返回值为逻辑1,反之返回值为逻辑0。
3、标量与矩阵进行关系运算时,是将标量与矩阵内每一个元素进行运算。
运算符 | 说明 | 函数 |
< | lt(a,b) | |
<= | le(a,b) | |
> | gt(a,b) | |
>= | ge(a,b) | |
== | 恒等于 | eq(a,b) |
~= | 不等于 | ne(a,b) |
参与矩阵元素逻辑运算的逻辑矩阵必须是维数相同的矩阵,如果逻辑运算符的一侧为标量,则是标量和逻辑矩阵的每一个元素进行逻辑运算。逻辑运算符有:与运算“&”、
MATLAB中提供两个快速逻辑运算符,快速逻辑与(&&)和快速逻辑或(||),快速运算只在if语句或while语句中应用。在执行if语句或while 语句中的表达式时,如果快速逻辑运算符左侧的操作数可以确定整个逻辑运算式的值,那么逻辑运算符右侧的操作数自动被短路。
运算符 | 说明 | 函数 |
& | 与 | and(a,b) |
| | 或 | or(a,b) |
~ | 非 | not(a) |
xor | 异或 | xor(a,b) |
运算符的优先级从最高到最低如下: