1  函数句柄

  1. clear all;
  2. f1=@cos
  3. t=:pi/:pi
  4. f1(t)
  5. f2=@complex
  6. f2(,)
  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() 建立单元数组
  1. clear all
  2. %建立一个两行三列的单元数组
  3. c = cell(,)
  4. c{,}=[:;:]
  5. c{,}='China'
  6. c{,}='Robin'
  7. c{,}='
函数celldisp() 显示单元数组的内容
  1. clear all
  2. c={eye(),'China';[:],}
  3. %显示单元数数组的内容
  4. celldisp(c)
  5. %显示的时候改成另外一个名字
  6. celldisp(c,'mycell')
函数cellplot() 以彩色的图形来显示
  1. clear all
  2. c={'中国','China';[:],}
  3. figure
  4. out = cellplot(c,'legend')
函数iscell()和函数num2cell() 判断是不是单元数组,矩阵转换为单元数组
  1. clear all
  2. a=[2.3 4.5 9.2;3.5 3.2 8.5]
  3. c=num2cell(a) %将矩阵转换为单元数组
  4. iscell(a)
  5. iscell(c)
函数cell2struct() 单元数组转化为结构体变量
  1. clear all
  2. c={'Dr. Chi',1.80,,[ ]}
  3. fields={'name','height','num','score'}
  4. %单元数组转化为一个结构体变量
  5. s=cell2struct(c,fields,)
  1. clear all
  2. c={'中国','China';[ ],}
  3. %获取元素
  4. c{,}
  5. c{,}
  6. %输出一个元素
  7. c{,}=[]

2.1  单元数组的删除与合并

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

 3  结构体类型

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

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

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

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

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

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

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

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

  1. clear all;
  2. %前面是变量,后面{}中的是值
  3. s1= struct('type',{'big','little'},'color',{'red'},'data',{[ ; ]})
  4. s2=rmfield(s1,'color')
  5. s3=rmfield(s1,{'type','color'})
cell2struct 单元型变量转换为结构体变量  

3.1  直接建立结构体变量

  1. clear
  2. stu().name='zhang san'
  3. stu().age=
  4. stu().gender='Male'
  5. stu().name='li si'
  6. stu().age=
  7. stu
  8. stu()

4  运算符

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

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

5  关系运算

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

5.1  比较两个浮点数

  1. clear all
  2. format long
  3. a=3.14159+eps
  4. b=3.14159
  5. c1=a==b
  6. c2=a>b
  7. c3=abs(a-b)<1e-
  8. format short

6  逻辑运算符

6.1  逐个逻辑运算

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

逐个逻辑运算

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

6.2  快速逻辑运算 

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

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

6.3  逐位逻辑运算

逐位逻辑运算
函数 函数说明
bitand(a,b) 逐位逻辑与
bitor(a,b) 逐位逻辑或
bitcmp(a,b) 逐位逻辑非
bitxor(a,b) 逐位逻辑异或
  1. clear all
  2. a=
  3. b=
  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))

4.matlab基础的更多相关文章

  1. matlab基础教程——根据Andrew Ng的machine learning整理

    matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...

  2. Matlab基础

    基本运算: 一,矩阵的生成 clc ; clear all; close all; 1.直接输入 A = [ 1 ,2 ,3,4;2,3,4,5;3,4,5,6] A = 1 2 3 4 2 3 4 ...

  3. Matlab - 基础知识

    Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列:dim=2 按行 (2)这本书很垃圾,不建议买. (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 ...

  4. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础

    写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...

  5. Matlab基础之单元数组和结构数组

    Matlab基础之单元数组和结构数组 前言: 单元数组和结构数组是一种新的数据类型,能将不同类型.不同维数的数组组合在一起,从而方便对不同的数据类型方便管理和维护. 如上图所示的2*2矩阵中,分别存储 ...

  6. Matlab--从入门到精通(chapter2 matlab 基础知识)

    Chapter2 Matlab 基础知识 1.基本数学运算符号 注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A 2. 命令行中的常用标点 3.常见的操作命令 4.输出数据显 ...

  7. Matlab高级教程_第一篇:Matlab基础知识提炼_02

    第三节:变量 正如其他编程软件一样. 都是通过变量来传递和交换数据的,这是基础.按照<MATLAB基础知识提炼>这篇文章先介绍变量比较合适.编程语言不外乎包括两部分:数据和结构.应该先把数 ...

  8. Matlab高级教程_第一篇:Matlab基础知识提炼_01

    第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...

  9. 信号与系统实验序章0——MATLAB基础命令入门

    本次开启新的系列,关于用Matlab实现常见信号和函数的生成和变换. 同时如果没有MATLAB基础,那么可以跟着本文一步一步学习Matlab的相关操作,本文旨在记录在信号与系统课程中MATLAB的学习 ...

  10. 【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)

    博主快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教 创作不易,如果本文帮到了您: 请帮忙点个赞

随机推荐

  1. Docker installs

    docker要求系统内核必须在3.10以上uname -r 命令查看你当前的内核版本 1.更新yum源并删除旧版docker yum remove docker docker-common docke ...

  2. 2019苏州凯美瑞德Java开发面试

    第四家Kmerit,苏州园区,出门晚了差点迟到,一点五十五到达,先花了一小时笔试,后来两个人技术面试,四点二十出了大楼. 一.笔试 1.单选,知识点很散,涉及数据结构链表,数组,树,堆,数据库,网络, ...

  3. CUDA与OpenCL架构

    CUDA与OpenCL架构 目录 CUDA与OpenCL架构 目录 1 GPU的体系结构 1.1 GPU简介 1.2 GPU与CPU的差异 2 CUDA架构 2.1 硬件架构 2.1.1 GPU困境 ...

  4. 【Linux】SecureCRT中按退格键出现^H

    分两步: ①SecureCRT上部的“选项”→“会话选项”→终端→仿真→映射键→其他映射→Backspace发送delete(B) 勾选中,确定 ②SecureCRT上部的“选项”→全局选项→常规→默 ...

  5. 利用chrome浏览器断电调试确定函数触发的位置

    比如某天遇到这样一个问题,页面有一个按钮,上面绑定了事件可能是多个事件,然后我们点击后出现了bug,我们要如何快速定位到这个事件,如果页面只有一个js或少量的js,我们一个打开查找,也可以接受.但是如 ...

  6. .apply .call方法的区别及使用 .apply第二个参数为数组,.call第二个参数为参数列表, 相同点:第一个参数都为Function函数内部的this对象.

    Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args--> ...

  7. 阿里云API网关!

    API 网关(API Gateway)提供高性能.高可用的 API 托管服务,帮助用户对外开放其部署在 ECS.容器服务等阿里云产品上的应用,提供完整的 API 发布.管理.维护生命周期管理.用户只需 ...

  8. CentOS 7 yum 安装redis(更简单)

    一.安装redis 1.检查是否有redis yum 源 1 yum install redis 2.下载fedora的epel仓库 1 yum install epel-release 3.安装re ...

  9. 一步步理解linux字符设备驱动框架(转)

    /* *本文版权归于凌阳教育.如转载请注明 *原作者和原文链接 http://blog.csdn.net/edudriver/article/details/18354313* *特此说明并保留对其追 ...

  10. PHP学习总结(1)——PHP入门篇之PHP可以做什么?

    为什么要学习PHP?"我可以用JavaScript来实现程序编写."但JavaScript的能力是有限的,JavaScript通常运行在浏览器(客户端),它可以制作网页上面的特效: ...