【Matlab数据类型之一:元组】 您所在的位置:网站首页 元杂剧的分类 【Matlab数据类型之一:元组】

【Matlab数据类型之一:元组】

2023-03-21 20:22| 来源: 网络整理| 查看: 265

matlab元组创建、读取、写入、及转化

元组是matlab的数据类型之一,其元胞中可存储文本,数值,矩阵等等不同的数据类型,因此应用较为方便。因此,在采用matlab进行数据处理时,对元组的创建、读取、写入、转化函数的掌握尤为重要,以下对其进行简要介绍。

元组cell的创建 cell(dim):创建空元组。若dim为标量,则创建dim×dim维的空元组;若dim为1×N维的矢量,则创建dim(1)×…dim(N)维的空元组。以下为实例介绍: (i) C = cell(2) C = [] [] [] [] (ii) C = cell([2,3,2]) C(:,:,1) = [] [] [] [] [] [] C(:,:,2) = [] [] [] [] [] []cell(dim1,dim2,…dimN):创建dim(1)×…dim(N)维的空元组(与dim为矢量时cell(dim)创建的元组相同)。以下为实例介绍: (i) C = cell(2,3,2) C(:,:,1) = [] [] [] [] [] [] C(:,:,2) = [] [] [] [] [] []C = {…}:通过花括号直接创建元组,其中每个元胞可以为字符串,数值,矩阵等不同数据类型。以下为实例介绍:: C = {‘cell’,1,11+2i;4,‘one’,‘two’} C = ‘cell’ [ 1] [11.0000 + 2.0000i] [ 4] ‘one’ ‘two’ 元组元胞的读取与写入

元组元胞的读取和写入与矩阵类似,但由于元胞数据类型的多样性,在读取和写入时花括号和圆括号需要区别使用。本节以C = {‘cell’,1,11+2i;4,‘one’,‘two’}为例,以花括号{}和圆括号()为区分对元组进行读取和写入:

():以元胞形式读取或写入元胞 (i) 读取元胞:A = C(1:2,1:2) A = ‘cell’ [ 1] [ 4] ‘one’ (ii) 写入元胞:A = {‘read11’,‘read12’;‘read21’,‘read22’}; C(1:2,1:2) = A C = ‘read11’ ‘read12’ [11.0000 + 2.0000i] ‘read21’ ‘read22’ ‘two’ 可以注意到,其中读取或写入的A,其数据类型均为元胞形式。{}:以字符串或数值形式读取或写入元胞 (i) 读取元胞:[r11,r21,r12,r22] = C{1:2,1:2} r11 = cell r21 = 4 r12 = 1 r22 = one 可以注意到,读取的数据类型为字符串或数值,而不是元胞。 (ii) 写入元胞:A = 12; C{1,1}=12 C = [12] [ 1] [11.0000 + 2.0000i] [ 4] ‘one’ ‘two’ 可以注意到,写入的数据A,其数据类型为数值,而不是元胞。 常用的元组转化函数

关于元组的转化函数包括有cell2mat,cell2struct,cell2table,mat2cell,num2cell,struct2cell,table2cell等函数,以下仅介绍数据分析时常用的几个函数:

cell2mat©:当元组中所有元胞具有相同数据类型时,可将元组转化为数组。如例所示: (i) 元胞均为字符串:C = {‘r’,‘e’,‘a’,‘d’;‘1’,‘2’,‘3’,‘4’} A = cell2mat© A = read 1234 (ii) 元胞均为数字:C = {[1], [2, 3, 4]; [5; 9], [6, 7, 8; 10, 11, 12]} A = cell2mat© A = 1 2 3 4 5 6 7 8 9 10 11 12mat2cell():将数组转化为包含不同维元胞的元组 (i) :C = mat2cell(A,dim1Dist,…,dimNDist),dimnDist(n=1…N)分别表示数组第n维度的划分方式。 A = cell2mat({[1], [2, 3, 4]; [5; 9], [6, 7, 8; 10, 11, 12]}) B = mat2cell(A, [2,1], [3,1]) B = [2x3 double] [2x1 double] [1x3 double] [ 12] (ii):C = mat2cell(A,rowDist)(本质是上个函数) A = cell2mat({[1], [2, 3, 4]; [5; 9], [6, 7, 8; 10, 11, 12]}) B = mat2cell(A, [2,1]) B = [2x4 double] [1x4 double]num2cell():将数组转化为元组 (i) :C = num2cell(A) A = cell2mat({[1], [2, 3, 4]; [5; 9], [6, 7, 8; 10, 11, 12]}) C = num2cell(A) C = [1] [ 2] [ 3] [ 4] [5] [ 6] [ 7] [ 8] [9] [10] [11] [12] (ii):C = num2cell(A,dim),dim可以为标量,也可以为矢量,且dim值对应数组A的维度。该函数使得每个元胞dim维度的尺寸等于数组dim维度的尺寸。 A = cell2mat({[1], [2, 3, 4]; [5; 9], [6, 7, 8; 10, 11, 12]}) C = num2cell(A,1) C = Columns 1 through 3 [3x1 double] [3x1 double] [3x1 double] Column 4 [3x1 double] C = num2cell(A,2) C = [1x4 double] [1x4 double] [1x4 double] C = num2cell(A,[1 2]) C = [3x4 double] 其他 celldisp©:显示元组内容 C={‘one’,2;3,‘two’} celldisp© C{1,1} = one C{2,1} = 3 C{1,2} = 2 C{2,2} = twocellfun(fun,C1,…,Cn):将函数应用于元组的每个元胞iscell©:判断输入C是否为元组iscellstr©:判断输入C是否为元胞为字符串的元组(或空元组)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有