zoukankan      html  css  js  c++  java
  • 2.1 MATLAB的数据类型

    2.1 MATLAB的数据类型

    • 每种数据类型都是以矩阵的形式存在的
    • 数据类型:数值型、字符型、元胞型、结构体、函数句柄
    • 数值型包含:双精度类型、单精度类型、整型
    • 支持不同数据的转换

    2.1.1 变量与常量

    1.变量

    • 无须事先声明
    • 无须指定变量类型,MATLAB会自动根据变量的赋值与相关操作来确定变量的类型
    • 命名规则:
      • 区分大小写
      • 必须字母开头,可以包含字母、数字、下划线
      • 变量名长度不超过63个

    2.常量

    常量 说明
    pi 圆周率
    Inf 无穷大
    NaN 不定值(0/0)
    eps 浮点运算的相对精度
    realmax 最大的正实数
    realmin 最小的正实数
    ans 默认变量名
    i,j 虚数单位,定义为√-1
    • 定义变量名避免与常量名相同

     2.1.2 数值型数据

    1.MATLAB的数值精度

    MATLAB的数值精度为2-1074,任何绝对值小于2-1074的实数都视为0

    2.MATLAB的显示精度

    显示精度:MATLAB所能显示的有效位数;默认下,整型则以整型显示,实数 以保留小数点后4位的浮点数显示

    显示格式控制;format,digits,vpa

    eps 
    ans = 2.2204e-16
    
    eps 
    format short
    ans =2.220446049250313e-16
    
    eps
    format long
    ans =2.2204e-16
    
    eps
    format rat
    ans =2.2204e-16
     eps
    digits(10)
    ans = 1/4503599627370496
    
    vpa(pi)
    ans =3.141592654
     
    vpa(pi,20) 
    ans =3.1415926535897932385
    View Code

    2.1.3 字符型数据

    syms a  b %创建符号变量
    
    字符串可以进行加减乘除

    2.1.4 元胞数组

     元胞数组的基本组成单元是元胞,元胞可以存放任意类型、任意大小的数组,同一元胞数组中个元胞的内容可以不同

     元胞数组可以通过赋值语句直接定义(使用{}括号),也可以由cell函数预先分配存储空间再对元胞元素逐个赋值(节约内存占用,提高执行效率)

    元胞的创建例如:

    a = {[1,2,3],ones(3),'matlab'}
    a =    {1×3 double}    {3×3 double}    {'matlab'}
    
    b = cell(1,3);
    b{1,1} = [1,2,3];
    b{1,2} = ones(3);
    b{1,3} = 'matlab';
    b = {1×3 double}    {3×3 double}    {'matlab'}

     2.1.5 结构体

    也可以存放不同类型的数据类型

    和元胞的差异:元胞通过值传递,结构体通过指针传递

    定义:直接赋值,或通过struct函数定义

    clc,clear,close all;
    A.b1 = [1,2,3];
    A.b2 = ones(2);
    A.b3 = 'matlab';
    
    B = struct('b1',1,'b2',ones(2),'b3',',matlab');
    
    >> A
    
    A = 
    
      包含以下字段的 struct:
    
        b1: [1 2 3]
        b2: [2×2 double]
        b3: 'matlab'
    
    >> B
    
    B = 
    
      包含以下字段的 struct:
    
        b1: 1
        b2: [2×2 double]
        b3: ',matlab'
    View Code

    2.1.6 函数句柄

    用于间接调用一个函数的MATLAB的值或者数据类型

    提高函数调用的速度,扩大子函数和私用函数的可调用范围,并迅速获得同名重载函数的位置、类型信息

    创建:通过命令fhandle = @ functionname 来创建,如:trig_f = @ sin 或者 sqr = @ (x)x.^2

    使用:fhandle(arg1, arg2, ...argn) 或者 fhandle()(无参数)

    clc, clear, close all;
    sin_f = @sin
    a = sin_f(pi);
    
    myadd = @(x,y) x+y^2;
    b1 = myadd(1,2);
    
    
    a =
    
           1/8165619676597685
    
    b1 =
    
            5
    View Code

    2.1.7 数据类型间转换

     对于图像而言,一般读入为uint8 型数据,需要转换为double类型

    im1 = im2double(img)

     注意理解一下代码:

    clc,clear,close all;
    a = '2';
    b = double(a);
    b1 = str2num(a);
    c = 2*a;
    d = 2*b;
    e = 2*b1;
    
    a = 2 
    b = 50
    b1 = 2
    c = 100
    d = 100
    e = 4
    View Code
  • 相关阅读:
    做汉堡
    作业2结对子
    软件开发流程阅读《构建之法》 第5.5 第6 第7章
    自动生成四则运算
    修改过的四则运算
    【暴力DP】[Dota1004]受折磨的灵魂(TormentedSoul)
    【Blog】Start My Journey In Cnblogs!
    【DP+ShortPath】[Dota1000]德鲁伊(Dyrad)
    【Watery DP】[Dota1002]光之守卫(Gandolf)
    【DP】[Dota1003]育母蜘蛛(BroodMother)
  • 原文地址:https://www.cnblogs.com/zgqcn/p/11263001.html
Copyright © 2011-2022 走看看