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
%建立一个两行三列的单元数组
c = cell(,)
c{,}=[:;:]
c{,}='China'
c{,}='Robin'
c{,}='
函数celldisp()显示单元数组的内容
clear all
c={eye(),'China';[:],}
%显示单元数数组的内容
celldisp(c)
%显示的时候改成另外一个名字
celldisp(c,'mycell')
函数cellplot()以彩色的图形来显示
 clear all
c={'中国','China';[:],}
figure
out = cellplot(c,'legend')
函数iscell()和函数num2cell()判断是不是单元数组,矩阵转换为单元数组
 clear all
a=[2.3 4.5 9.2;3.5 3.2 8.5]
c=num2cell(a) %将矩阵转换为单元数组
iscell(a)
iscell(c)
函数cell2struct()单元数组转化为结构体变量
 clear all
c={'Dr. Chi',1.80,,[ ]}
fields={'name','height','num','score'}
%单元数组转化为一个结构体变量
s=cell2struct(c,fields,)
 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;
%前面是变量,后面{}中的是值
s1= struct('type',{'big','little'},'color',{'red'},'data',{[ ; ]})
s1()
s1()
istruct是否为结构体变量

clear all;
s=struct('one',,'two',)
%判断是否是结构体变量
f1=isstruct(s)
%判断one是否是s的成员变量
f2=isfield(s,'one')
f3=isfield(s,'three')
f4=isfield(s,{'one','pi','Two','three'})
isfield是否为结构体成员

clear all;
s=struct('one',,'two',)
%判断是否是结构体变量
f1=isstruct(s)
%判断one是否是s的成员变量
f2=isfield(s,'one')
f3=isfield(s,'three')
f4=isfield(s,{'one','pi','Two','three'})
fieldnames结构体变量成员的名字

clear all;
s=struct('one',,'two',,'three',,'four',)
%获取成员变量的名字
f1=fieldnames(s)
%对结构体变量的成员变量的字母顺序进行排序
f2=orderfields(s)
substruct子结构体 
struct2cell结构体变量转换为单元型变量

 clear all;
s().name='Robin'
s().sex='Male'
s().num=
s().room=
s().name='Tom'
s
%结构体变量转换成单元数组
c=struct2cell(s)
orderfield对结构体变量的成员排序

clear all;
s=struct('one',,'two',,'three',,'four',)
%获取成员变量的名字
f1=fieldnames(s)
%对结构体变量的成员变量的字母顺序进行排序
f2=orderfields(s)
getfield得到结构体的成员变量

 clear all;
s1=struct('one',,'two',)
%改变结构体中一个变量的值
f1=getfield(s1,'one') %创建一个结构体
s2=struct('name',{'Robin','Tom'},'sex',{'Male','Male'},'score',[ ])
%获取一个变量的值(第一行第二列)
f2=getfield(s2,{,},'name')
%也可以直接获取
f3=s2(,).name %获取变量的值
f4=getfield(s2,{,},'score',{})
f5=s2(,).score()
setfield设置结构体的成员变量 
rmfield删除结构体的成员变量

clear all;
%前面是变量,后面{}中的是值
s1= struct('type',{'big','little'},'color',{'red'},'data',{[ ; ]})
s2=rmfield(s1,'color')
s3=rmfield(s1,{'type','color'})
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说明
&andl逻辑与
|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))
05-28 14:59