博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.matlab基础
阅读量:5046 次
发布时间:2019-06-12

本文共 4763 字,大约阅读时间需要 15 分钟。

1  函数句柄

1 clear all;2 f1=@cos3 t=0:pi/5:pi4 f1(t)5 f2=@complex6 f2(3,4)
1 clear all 2 %函数句柄 3 f1=@char 4 %函数句柄转换为字符串 5 s1=func2str(f1) 6 %字符串转换为函数句柄 7 f2=str2func(s1) 8 %f1的类型 9 functions(f1)10 %判断f1是不是函数句柄11 isa(f1,'function_handle')12 %判断f1,f2是否是同一个函数13 isequal(f1,f2)

2  单元数组类型

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

函数cell() 建立单元数组
clear all%建立一个两行三列的单元数组c = cell(2,3)c{
1,1}=[1:3;3:5]c{
2,2}='China'c{
2,3}='Robin'c{
2,1}=100'
View Code

 

函数celldisp() 显示单元数组的内容
clear allc={eye(2),'China';[1:4],100}%显示单元数数组的内容celldisp(c)%显示的时候改成另外一个名字celldisp(c,'mycell')
View Code

 

函数cellplot() 以彩色的图形来显示
1 clear all2 c={
'中国','China';[1:4],100}3 figure4 out = cellplot(c,'legend')
View Code

 

函数iscell()和函数num2cell() 判断是不是单元数组,矩阵转换为单元数组
1 clear all2 a=[2.3 4.5 9.2;3.5 3.2 8.5]3 c=num2cell(a)           %将矩阵转换为单元数组4 iscell(a)5 iscell(c)
View Code

 

函数cell2struct() 单元数组转化为结构体变量
1 clear all2 c={
'Dr. Chi',1.80,20110001,[89 90 96]}3 fields={
'name','height','num','score'}4 %单元数组转化为一个结构体变量5 s=cell2struct(c,fields,2)
View Code

 

1 clear all2 c={
'中国','China';[1 2 3 4 5],100}3 %获取元素4 c{
1,1}5 c{
2,1}6 %输出一个元素7 c{
2,2}=[]

2.1  单元数组的删除与合并

1 clear all 2 c={
'中国','China';[1:4;2:5],10} 3 %单元数组的扩充 4 c{
2,4}=100 5 %第一行元素 6 c(1,:) 7 %删除第三列 8 c(:,3)=[] 9 d={
'北京','Beijing';[],3}10 %单元数组的合并11 e=[c,d]12 %删除第二行13 e(2,:)=[]

 3  结构体类型

  结构体是按照成员变量名组织起来的不同数据类型数据的集合.结构体类似C语言的结构体数据.每个成员变量用指针操作符"."表示,列如A.name表示结构体变量A的name成员变量.

函数 说明 代码示例
struct 建立结构体变量
clear all;%前面是变量,后面{}中的是值s1= struct('type',{
'big','little'},'color',{
'red'},'data',{[1 2 3;2 3 4]})s1(1)s1(2)
View Code

 

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

 

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

 

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

 

substruct 子结构体  
struct2cell 结构体变量转换为单元型变量  
1 clear all;2 s(1).name='Robin'3 s(1).sex='Male'4 s(1).num=201100015 s(1).room=2036 s(2).name='Tom'7 s8 %结构体变量转换成单元数组9 c=struct2cell(s)
View Code

 

orderfield 对结构体变量的成员排序  
clear all;s=struct('one',1,'two',2,'three',3,'four',4)%获取成员变量的名字f1=fieldnames(s)%对结构体变量的成员变量的字母顺序进行排序f2=orderfields(s)
View Code

 

getfield 得到结构体的成员变量  
1 clear all; 2 s1=struct('one',1,'two',2) 3 %改变结构体中一个变量的值 4 f1=getfield(s1,'one') 5  6 %创建一个结构体 7 s2=struct('name',{
'Robin','Tom'},'sex',{
'Male','Male'},'score',[100 99]) 8 %获取一个变量的值(第一行第二列) 9 f2=getfield(s2,{
1,2},'name')10 %也可以直接获取11 f3=s2(1,2).name12 13 %获取变量的值14 f4=getfield(s2,{
1,2},'score',{
2})15 f5=s2(1,2).score(2)
View Code

 

setfield 设置结构体的成员变量  
rmfield 删除结构体的成员变量  
clear all;%前面是变量,后面{}中的是值s1= struct('type',{
'big','little'},'color',{
'red'},'data',{[1 2 3;2 3 4]})s2=rmfield(s1,'color')s3=rmfield(s1,{
'type','color'})
View Code

 

cell2struct 单元型变量转换为结构体变量  

3.1  直接建立结构体变量

1 clear2 stu(1).name='zhang san'3 stu(1).age=284 stu(1).gender='Male'5 stu(2).name='li si'6 stu(2).age=297 stu8 stu(1)

 4  运算符

  MATLAB提供的基本算术运算有:+  -   *   /   ^常用的算术运算符有如下所示.对于标量和数组,是以元素为单位进行运算.

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

5  关系运算

关系运算符 s说明 h函数
< 小于 lt
<= 小于等于 le
> 大于 gt
>= 大于等于 ge
== 恒等于 eq
~= 不等于 ne
1 clear all; 2 a=3>2 3 %三行四列的矩阵 4 b1=rand(3,4) 5 %大于0.5 6 b2=b1>=0.5 7 %小于等于0.8 8 b3=b1<=0.8 9 %b2 b3相等的部分10 c1=eq(b2,b3)11 %b2 b3不等的部分12 c2=b2~=b3

5.1  比较两个浮点数

1 clear all2 format long3 a=3.14159+eps4 b=3.141595 c1=a==b6 c2=a>b7 c3=abs(a-b)<1e-108 format short

6  逻辑运算符

6.1  逐个逻辑运算

  在MATLAB中,逻辑运算分为3类,分别是逐个元素的逻辑运算,快速逻辑运算和逐位逻辑运算.逐个元素的逻辑运算有3种,分别是逻辑与&,逻辑或和逻辑非(~).在进行两个数组或句子的逻辑与和逻辑或时,必须具有相同的维数.

                                                                   逐个逻辑运算

运算符 h函数 s说明
& and l逻辑与
| or 逻辑或
~ not 逻辑非
  xor 逻辑异或
1 clear all 2 A=rand(3,4) 3 B=A>0.6 4 C=A<0.4 5 %与 6 d1=B&C 7 %或 8 d2=B|C 9 %非10 d3=~B11 %异或12 d4=xor(B,C)

6.2  快速逻辑运算 

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

快速逻辑运算
运算符 说明
&& 快速逻辑与,当第一个操作数为假时,直接返回假,否则和&相同
|| 快速逻辑或,当第一个操作数为真时,直接返回真,否则和|相同
1 clear all2 a=03 (a>0)&&(3/a>0)  %快速逻辑与4 (a>0)&(3/a>2)   %逻辑与

6.3  逐位逻辑运算

逐位逻辑运算
函数 函数说明
bitand(a,b) 逐位逻辑与
bitor(a,b) 逐位逻辑或
bitcmp(a,b) 逐位逻辑非
bitxor(a,b) 逐位逻辑异或
1 clear all 2 a=20 3 b=23 4 %十进制数转换为二进制 5 c1=dec2bin(a) 6 c2=dec2bin(b) 7  8 %位与 9 d1=bitand(a,b)10 d2=dec2bin(bitand(a,b))11 12 %位或运算13 d3=dec2bin(bitor(a,b))14 d4=dec2bin(bitxor(a,b))

 

转载于:https://www.cnblogs.com/xiaochi/p/8880051.html

你可能感兴趣的文章
Vue中使用key的作用
查看>>
二叉索引树 树状数组
查看>>
日志框架--(一)基础篇
查看>>
Java设计模式之原型模式
查看>>
Spring学习(四)-----Spring Bean引用同xml和不同xml bean的例子
查看>>
哲理故事与管理之道(20)-用危机激励下属
查看>>
关于源程序到可运行程序的过程
查看>>
wepy的使用
查看>>
转载:mysql数据库密码忘记找回方法
查看>>
scratch少儿编程第一季——06、人在江湖混,没有背景怎么行。
查看>>
面向对象1
查看>>
在ns2.35中添加myevalvid框架
查看>>
【贪心+DFS】D. Field expansion
查看>>
为什么要使用href=”javascript:void(0);”
查看>>
二进制文件的查看和编辑
查看>>
oracle正则表达式
查看>>
twitter——数据连接
查看>>
Maven创建项目时出现Generating project in Interactive mode就一直卡住的解决方案
查看>>
angular框架的面试题集锦
查看>>
JAVA泛型使用方法总结
查看>>