zoukankan      html  css  js  c++  java
  • 【MATLAB】MATLAB的数据类型和函数说明

    1.MATLAB的数据类型

    如下图所示,MATLAB可以支持15种基本的数据类型,从类型上包括整形(int/uint)、浮点型(single/double)、字符型(char)、逻辑型(logical)、元胞数组(cell)、结构数组(struct)以及函数句柄(function_handle)等。可以将上述类型归纳为基本的数据结构:int、double、char以及高级数据结构(容器,container),即cell和struct.下面简要介绍一下:

    • 整形:整形分为有符号整形(int)和无符号整形(uint),同时根据存储时占用的字节数又可以分成8位、16位、32位和64位。 通常用MATALB读取图片时,系统默认存储格式为int8。

    • 浮点型:浮点型分为单精度(single)和双精度(double),单精度存储需要32位(4个字节),双精度存储需要64位(8个字节)。默认情况下,MATLAB将所有的数值存储为双精度浮点型。

    • 字符型:通常用于表示代码中需要读写的字符或者字符串,以字符数组的形式进行存储。

    • 逻辑型:通常用于判断一段语句是否正确,如下就是一个判断语句,因为a>1不成立,所以输出的b=0

      a=0;
      b=(a>1)
      
    • 结构数组:结构数组可以包含多种不同的数据类型,如我们要记录名字、年龄、性别,那么就可以通过定义统一的结构数组Infomation来记录。如下:

      Infomation.name='LIM'
      Infomation.gender='man'	
      Infomation.age=23
      %输出
      >>whos Infomation
        Name            Size            Bytes  Class     Attributes
      
        Infomation      1x1               548  struct 
      
    • 元胞数组:元胞数组也可以存储不同类型的数据,同时它还可以通过索引的形式对存储的数据进行访问。元胞数组定义时用大括号{}(也还有其他的方法定义,此处不再详述),如下:

      Information={'LIM','man',23}
      %输出
      >>whos Information
        Name             Size            Bytes  Class    Attributes
      
        Information      1x3               356  cell   
      >> Information(1)%索引
      ans = 
          'LIM'
          
      %还可以用如下的方式来定义
      a{1,1}=[1,2,4;3,4,5;3,6,7;8,9,0];
      a{1,2}='Testing string';
      a{2,1}=5657;
      a{2,2}=[];%空的
      %看看元胞数组a的内容怎么样
      >>a
      a = 
          [4x3 double]    'Testing string'
          [      5657]                  []
      % 索引时有如下的区别,小括号索引只显示大小,大括号索引显示具体数据        
      >> a(1,1)
      ans = 
          [4x3 double]
      >> a{1,1}
      ans =
           1     2     4
           3     4     5
           3     6     7
           8     9     0
      
    • 函数句柄:函数句柄通常用于间接调用一个函数的取值或者是数据类型。通常用于作图过程中对图片不同的属性进行操作。图形窗口中的线条、曲面等都是图形对象,而这些图形对象可以通过一个被称为“句柄值”的东西加以控制,如画出一条直线,可以通过句柄值修改线条的颜色,宽度等等。而所谓的句柄值就是一个数值,每个图形对象都对应这唯一的句柄值。

      %如下,可以通过直接输入h,就可以得到这个线条的属性了
      h=line([0,1],[0,1])
      >> h %如果想要完全显示所有属性,可以用get(h)
      h = 
      
        Line (具有属性):
      
                    Color: [0 0.4470 0.7410]
                LineStyle: ':'
                LineWidth: 2
                   Marker: 'none'
               MarkerSize: 6
          MarkerFaceColor: 'none'
                    XData: [0 1]
                    YData: [0 1]
                    ZData: [1x0 double]
                    
      %则可以通过如下的形式修改句柄值(属性)
      h.LineWidth=2 
      

    补充(高维矩阵的说明):

    MATLAB中的多维矩阵,就是在定义二维矩阵时再添加一个维度,也即定义在了不同的页面上(就这样理解),所以索引时除了与二维的相同外,还要再加一个页数索引。

    2.MATLAB的函数

    matlab除了用function[]=funname()自定义的永久性函数外,还有一些临时性函数。

    • 永久性函数:由函数文件形式建立的自定义函数

      function[output1,output2,...]=FunName(input1,input2,...)
      %函数体
      
    • 临时性函数:临时性函数通常用于创建需要临时使用的简单的函数。临时性函数包括内联函数(inline function)和匿名函数(anonymous function),它们既可以再编辑器中编辑,也可以在命令窗口中编辑。而匿名函数的效率优于内联函数,故建议使用匿名函数。

      %内联函数 由inline函数建立,格式如下:
      FunName=inline('expression','arg1','arg2',...)%可以通过函数名调用,expression是函数的表达式,arg1等%是输入的变量,例如:
      f=inline('x^2+y^2','x','y');
      >> f(3,4)
      ans =
          25
      >> whos f
        Name      Size            Bytes  Class     Attributes
      
        f         1x1              1190  inline  
        
      %------------------------------------------------------------------------------------ 
      % 匿名函数  匿名函数通过“@”表示函数指针(或称函数句柄),格式如下:
      FunName=@(arg1,arg2,...)expression %同上
      ff=@(x,y)x^2+y^2;
      >> ff(3,4)
      ans =
          25
      >> whos ff
        Name      Size            Bytes  Class              Attributes
      
        ff        1x1                32  function_handle              
      
      
  • 相关阅读:
    KVM_虚拟化技术
    Java面试题全集
    Web负载均衡与分布式架构
    Tomcat的目录结构和配置文件详解
    Apache HTTP Server 与 Tomcat 的三种连接方式介绍
    Java文件上传
    基础知识《十一》Java异常处理总结
    《转载》renameTo文件在windows环境下可以,在linux中报错
    《转载》Linux服务之搭建FTP服务器&&分布式文件服务器的比较
    oracle闪回数据
  • 原文地址:https://www.cnblogs.com/LENMOD/p/13834662.html
Copyright © 2011-2022 走看看