1 函数句柄
clear all;
f1=@cos
t=:pi/:pi
f1(t)
f2=@complex
f2(,)
clear all
%函数句柄
f1=@char
%函数句柄转换为字符串
s1=func2str(f1)
%字符串转换为函数句柄
f2=str2func(s1)
%f1的类型
functions(f1)
%判断f1是不是函数句柄
isa(f1,'function_handle')
%判断f1,f2是否是同一个函数
isequal(f1,f2)
2 单元数组类型
单元数组是一种比较特殊的数据类型,每个元素都以单元的形式存在.在MATLAB中,采用大括号({})建立单元数组,也可以采用函数cell()来建立单元数组.在获取单元数组的元素时,也采用大括号表示下标.
函数cell() | 建立单元数组 | clear all |
函数celldisp() | 显示单元数组的内容 | clear all |
函数cellplot() | 以彩色的图形来显示 | clear all |
函数iscell()和函数num2cell() | 判断是不是单元数组,矩阵转换为单元数组 | clear all |
函数cell2struct() | 单元数组转化为结构体变量 | clear all |
clear all
c={'中国','China';[ ],}
%获取元素
c{,}
c{,}
%输出一个元素
c{,}=[]
2.1 单元数组的删除与合并
clear all
c={'中国','China';[:;:],}
%单元数组的扩充
c{,}=
%第一行元素
c(,:)
%删除第三列
c(:,)=[]
d={'北京','Beijing';[],}
%单元数组的合并
e=[c,d]
%删除第二行
e(,:)=[]
3 结构体类型
结构体是按照成员变量名组织起来的不同数据类型数据的集合.结构体类似C语言的结构体数据.每个成员变量用指针操作符"."表示,列如A.name表示结构体变量A的name成员变量.
函数 | 说明 | 代码示例 |
struct | 建立结构体变量 | clear all; |
istruct | 是否为结构体变量 | clear all; |
isfield | 是否为结构体成员 | clear all; |
fieldnames | 结构体变量成员的名字 | clear all; |
substruct | 子结构体 | |
struct2cell | 结构体变量转换为单元型变量 | clear all; |
orderfield | 对结构体变量的成员排序 | clear all; |
getfield | 得到结构体的成员变量 | clear all; |
setfield | 设置结构体的成员变量 | |
rmfield | 删除结构体的成员变量 | clear all; |
cell2struct | 单元型变量转换为结构体变量 |
3.1 直接建立结构体变量
clear
stu().name='zhang san'
stu().age=
stu().gender='Male'
stu().name='li si'
stu().age=
stu
stu()
4 运算符
MATLAB提供的基本算术运算有:+ - * / ^常用的算术运算符有如下所示.对于标量和数组,是以元素为单位进行运算.
标量和数组运算 | j矩阵运算 | g功能 |
+ | + | 加 |
- | - | 减 |
.* | * | 乘 |
./ | / | 左除 |
.\ | \ | 右除 |
.^ | ^ | 乘方 |
.' | ' | 转置 |
5 关系运算
关系运算符 | s说明 | h函数 |
< | 小于 | lt |
<= | 小于等于 | le |
> | 大于 | gt |
>= | 大于等于 | ge |
== | 恒等于 | eq |
~= | 不等于 | ne |
clear all;
a=>
%三行四列的矩阵
b1=rand(,)
%大于0.
b2=b1>=0.5
%小于等于0.
b3=b1<=0.8
%b2 b3相等的部分
c1=eq(b2,b3)
%b2 b3不等的部分
c2=b2~=b3
5.1 比较两个浮点数
clear all
format long
a=3.14159+eps
b=3.14159
c1=a==b
c2=a>b
c3=abs(a-b)<1e-
format short
6 逻辑运算符
6.1 逐个逻辑运算
在MATLAB中,逻辑运算分为3类,分别是逐个元素的逻辑运算,快速逻辑运算和逐位逻辑运算.逐个元素的逻辑运算有3种,分别是逻辑与&,逻辑或和逻辑非(~).在进行两个数组或句子的逻辑与和逻辑或时,必须具有相同的维数.
逐个逻辑运算
运算符 | h函数 | s说明 |
& | and | l逻辑与 |
| | or | 逻辑或 |
~ | not | 逻辑非 |
xor | 逻辑异或 |
clear all
A=rand(,)
B=A>0.6
C=A<0.4
%与
d1=B&C
%或
d2=B|C
%非
d3=~B
%异或
d4=xor(B,C)
6.2 快速逻辑运算
在MATLAB中,有两个快速逻辑运算符,逻辑与(&&)和逻辑或(||).&&运算符和&运算符非常相近.&&运算符在参与运算的第一个操作数为假时,直接返回假,不再返回第二个操作数,||操作数,在参与运算的第一个操作数返回真时,直接返回真,不再判断第二个操作数
运算符 | 说明 |
&& | 快速逻辑与,当第一个操作数为假时,直接返回假,否则和&相同 |
|| | 快速逻辑或,当第一个操作数为真时,直接返回真,否则和|相同 |
clear all
a=
(a>)&&(/a>) %快速逻辑与
(a>)&(/a>) %逻辑与
6.3 逐位逻辑运算
函数 | 函数说明 |
bitand(a,b) | 逐位逻辑与 |
bitor(a,b) | 逐位逻辑或 |
bitcmp(a,b) | 逐位逻辑非 |
bitxor(a,b) | 逐位逻辑异或 |
clear all
a=
b=
%十进制数转换为二进制
c1=dec2bin(a)
c2=dec2bin(b) %位与
d1=bitand(a,b)
d2=dec2bin(bitand(a,b)) %位或运算
d3=dec2bin(bitor(a,b))
d4=dec2bin(bitxor(a,b))