Matlab 数据类型对应函数一览

  1. 数值类型
    整数类型(有符号,无符号),涉及到的函数取整函数floor / ceil / round / fix
    浮点数类型(单、双精度)
    复数类型: real imag abs angle conj complex

  2. 逻辑类型
    关系运算符/逻辑运算符/xor any all / is*测试函数

  3. 字符/字符串
    blank(n) 返回一个n个零或空格的字符串
    deblank 去掉字符串中后拖的空格
    eval(string) 作为一个matlab命令求字符串的值
    findstr 从一个字符串内找到字符串
    isletter 字母存在时返回真值
    isspace 空格字符存在时返回真值
    isstr 输入字符串返回真值
    strcmp 字符串相同返回真值
    strrep 用一个字符串替换另一个字符串
    –>构造函数:
    %构造多行字符串时,若字符串内容写在[ ]内,则多行字符串的长度必须相同(二维字符串矩阵,字符串每个字符分别占用一个位置);若字符串内容写在{ }中,多行字符串的长度可以不同(其实结果就是X*1的cell)。
    strvat / char:用于纵向连接多行字符串, 每行字符串的长度不要求相等。区别:strvat 会向右自动补偿空格,使每行字符串的长度相同,会自动忽略空字符串。char:不会忽略空字符串。
    –>比较函数:
    比较两个字符串是否相等,可以用关系运算符==,也可以用strcmp函数。使用关系运算符,必须字符串大小相等,结果返回大小一样的0 1数组。strcmp函数则根据字符串是否相等,返回0或1.
    –>字符串查找函数
    findstr(str, ‘**’): 对大小写敏感,另外它对字符串矩阵不起作用,字符串矩阵需要通过循环的方式搜索
    –>替换函数

    1. 通过赋值的方式实现;2) strrep(str,‘A’,‘B’)函数实现, 它可替换任意长度的字符串,应用更广。与findstr一样,strrep对字符串矩阵不起作用
      –>字符串-数值转换函数
      abs字符/串转成ASCII值/向量 setstr ASCII转成字符串
      dec2hex 十进制字符串转成十六进制字符串 hex2dec
      int2str 整数转成字符串
      lower字符串转成小写 upper字符串转成大写
      num2str整数转成字符串
      str2mat
      str2num
  4. 函数句柄:
    将函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传递;函数句柄可使函数调用变得更加灵活方便,极大地提高了函数调用的速度和效率
    –>创建方式1:@函数名
    function_handle=@filename: 创建函数句柄。
    创建方式2: str2func(‘函数名’)
    创建方式3:@(参数列表) 单行表达式
    *Matlab内置函数及自主编写的内部函数,都可以创建函数句柄
    –>调用:
    Hfunction = @FunctionName
    直接调用Hfunction(x1,x2,…xn) 或 feval(Hfunction, x1,x2,…xn)

    函数句柄操作函数
    –>functions(funhandle): 返回一个结构体,里面存储了函数的名称,类型(simple或overload)以及M的位置
    –>func2str(funhandle): 将函数句柄转换为函数名称字符串
    —>isa(var,‘function_handle’): 检测变量var是否是函数句柄
    —>isequal(funhandlea, funhandleb): 检测两个函数句柄是否对应同一函数。

  5. 结构体类型
    struct创建函数

  6. 数组/矩阵
    –>linspace(a,b,N): a,b之间创建N个元素
    –>矩阵构造函数: ones(n), ones(size(A)), zeros(n), zeros(size(A)), eye(n), eye(size(A)), magic(n), rand(n), randn(n), diag(x), triu(A)
    –>改变矩阵维度/大小/元素排序:reshape(A,m,n), repmat(A,[m n]), rot90(A)将A逆时针旋转90,cat(dim,A,B)将AB组合成一个dim维的多维矩阵,sort(A)对矩阵进行升序排序,二维矩阵时对每一列分别进行排序。
    –>单下标索引与双下标索引的转换,ind=sub2ind(size(A),i,j) i j分别是双下标索引的行/列,ind为单下标索引值;[i j]=ind2sub(size(A),ind)
    –>矩阵信息(结构/大小/维度/矩阵数据类型)函数 1)涉及结构的:isempty() isscalar() isvector(); 2)涉及大小的:ndims(获取维数) size(获取各维度的长度) length(获取最长维的长度) numel(获取矩阵元素的个数); 3)涉及数据类型的:isnumeric(检测矩阵元素是否数值型变量) isreal(是否实数数值行变量) isfloat(是否浮点类型) isinteger(整数型) islogical(逻辑型) ischar(字符型) isstruct(结构体型) iscell(元胞类型) iscellstr(确认是否为字符向量元胞数组)
    –>矩阵合并函数: cat(dim,A,B) horzcat(A,B)水平方向合并A,B矩阵,vertcat(A,B)竖直方向合并,repmat(A,m,n)
    –>运算符(算术运算符{A*B A.*B}及常用运算函数exp log sqrt sin asin mod min median sum cumsum rem fft、关系运算符、逻辑运算符)

  7. 单元数组类型cell: 广义矩阵
    –>cell创建函数
    –>reshape改变单元数组形状
    –> A=cell2mat©:将元胞数组转换为基础数据类型的普通数组。c为输入元胞数组,c内元胞必须只含有一种数据类型(数值数据、逻辑数据、字符数据、或包含相同字段名称和数据类型的结构体), 且生成的数组A也是该数据类型。C的内容必须支持串联到N维矩阵中,同一列中的元胞内容,必须具有相同的列数,行数可不同;同一行中的元胞内容,必须具有相同的行数,列数可不同。例如c={11double, 13double; 21double,23double},A=34double (3所有行相加1+2,4所有列相加1+3)
    –>C=mat2cell(A,dim1dist, dim2dist…dimndist) 将数组 A 划分为更小的数组,并在元胞数组 C 中返回它们。A可以包含任何数据类型。dim1dist指定如何划分行[m1, m2]、列[n1 n2]… A=3
    4double C=mat2cell(A,[1, 2], [1,3])
    –>C=cellstr(A): 转换为字符向量元胞数组 (cell内全是字符,没有其他类型数据)。
    A须为字符数组char、字符串数组str、字符向量元胞数组cell、或分类数组。
    **若A为字符向量元胞数组,则返回未更改的A。

    –>cellfun 对元胞中的每个元胞应用函数
    1) A=cellfun(func,C): 将func函数应用于元胞c的每个元胞,每次应用于一个元胞。func的每个结果,输出串联成数组A。A的大小=C的大小,A(i)=func(C{i}) ; func是函数句柄
    例 C = {1:10, [2; 4; 6], []}, A = cellfun(@mean,C) 求每个数组数组的均值;[nrows,ncols] = cellfun(@size,C) 计算每个数组的大小,行数列数分别输入到两个1*3的数值数组nrows、ncols
    2) A = cellfun(func,Name,Value) : 应用 func 并使用一个或多个 Name,Value 对组参数指定其他选项。例如,要以元胞数组形式返回输出值,请指定 ‘UniformOutput’,false
    ‘UniformOutput’, ture: func的返回量必须是标量,由cellfun串联成数组
    'UniformOutput’, false:cellfun以元胞数组形式返回func的输出
    例:C = {‘Monday’,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’}, A=cellfun(@(x) x(1:3),C,‘UniformOutput’,false)取前3字母

    —>celldisp 显示元胞内容
    —>cellplot 以图形方式显示元胞数组的结构
    —>cell2table 将元胞数组转换为表
    —>cell2struct 将元胞数组转换为结构体数组 structArray = cell2struct(cellArray, fields, dim)

Matlab数据类型一览

你可能感兴趣的:(学习)