精华内容
下载资源
问答
  • matlab cell转字符串_MATLABcell数组

    千次阅读 2020-12-04 09:20:14
    5 Cell数组元胞数组(cell)是MATLAB的一种特殊数据类型。可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和...

    5  Cell数组

    元胞数组(cell)是MATLAB的一种特殊数据类型。可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。图3-3是元胞数组的结构示意图,表示的是一个2´3的元胞数组。元胞数组的第1行包括了无符号整数、字符串数组和一个复数数组,第2行包括了其他3种类型的数组,其中最后一个是另外的元胞数组的嵌套。

    66082179a141f36e3cc6ade40ef5f38b.png

    3-3  元胞数组结构示意图

    和数值数组一样,元胞数组的维数不受限制,元胞数组可以是一维的、二维的,也可以是多维的。对元胞数组的元素进行寻访,可以使用“单下标”方式或者“全下标”方式。

    结构数组和元胞数组有着非常相似的功能,但是二者又有所区别,具体比较如下。

    结构数组和元胞数组在使用目的上类似,都是提供一种存储混合格式数据的方法。二者最大的区别在于:结构数组存储数据的容器称做“域”,而元胞数组是通过数字下标索引来进行访问的。

    结构数组经常用于重要数据的组织存储。而元胞数组因为采用数字下标,所以经常在循环控制流中使用。元胞数组还常被用来存储不同长度的字符串。

    在实际应用中,二者一般可以随意选择,多数情况下无论选用其中哪一种类型都可以达到目的,用户可以根据自己的习惯和实际应用来决定。

    5.1  Cell数组的创建

    组成元胞数组的数据可以是任意类型的数据,所以在创建元胞数组之前需要创建相应的数据。本小节结合具体的实例介绍创建元胞数组的方法。

    在表现形式上,元胞数组和一般矩阵一样,元胞数组的尺寸也必须是长方形的。一般矩阵的创建使用中括号" [ ] ",而元胞数组使用的是花括号"{ }"。元胞数组的创建方式同矩阵的创建方式类似,只需要将中括号" [ ] "替换为花括号"{ }"即可。在元胞数组创建的过程中使用逗号或者空格来分隔元素,使用分号来分行。

    【例3-21】  创建元胞数组示例。

    >> A = {[1 4 3; 0 5 8; 7 2 9], 'Anne Smith'; 3+7i, -pi:pi/4:pi};

    >> A

    A =

        [3x3 double]    'Anne Smith'

        [3.0000 + 7.0000i]    [1x9 double]

    本例中元胞数组A的第一个元素是一个数值矩阵,矩阵的输入只需要使用正常的中括号" [ ] "即可。而第一行第二列字符串也是正常使用单引号即可。

    【例3-22】  嵌套元胞数组创建示例。

    (1)直接创建嵌套元胞数组,只需要将内层和外层的元胞数组都用花括号括起来即可。

    >> header = {'Name', 'Age', 'Pulse/Temp/BP'};    %  元胞数组的创建

    >> records(1,:) = {'Kelly', 49, {58, 98.3, [103, 72]}};%  嵌套元胞数组的创建

    >> header, records

    header =

        'Name'    'Age'    'Pulse/Temp/BP'

    records =

        'Kelly'    [49]    {1x3 cell}

    (2)通过分步来创建元胞数组则更加清楚明了。

    >> vitalsigns = {60, 98.4, [105, 75]};

    >> records(1,:) = {'Kelly', 49, vitalsigns}

    %  将元胞数组vitalsigns嵌套进records

    records =

        'Kelly'    [49]    {1x3 cell}

    【例3-23】  依次创建元胞数组示例。

    用户还可以通过每次创建一个元胞的方式,依次创建元胞数组,MATLAB会根据表达式依次对原有的元胞数组进行扩展,从而建立新的元胞数组。例如:

    >> A(1,1) = {[1 4 3; 0 5 8; 7 2 9]};

    >> A(1,2) = {'Anne Smith'};

    >> A(2,1) = {3+7i};

    >> A(2,2) = {-pi:pi/4:pi};

    如果用户对超出数组尺寸的元胞进行赋值,那么MATLAB就会自动扩展至新的尺寸,以将新赋的值包括进来。例如将上面的A2´2扩展为3´3,可以使用如下命令:

    >> A(3,3) = {5};

    扩展之后的元胞数组A示意图如图3-4所示。

    f9e083adf5b549e684e4c919ca2ee739.png

    3-4  元胞数组A示意图

    除了上面所讲的方法之外,MATLAB还提供了一个专门的函数来建立元胞数组,即cell函数。cell函数用于创建一维、二维或者多维空元胞数组。

    【例3-24】  创建空元胞数组示例。

    >> a=cell(1)

    a =

        {[]}

    >> b=cell(3,3)

    b =

         []     []     []

         []     []     []

         []     []     []

    >> c=cell(2,2,2)

    c(:,:,1) =

         []     []

         []     []

    c(:,:,2) =

         []     []

         []     []

    >> whos

      Name      Size             Bytes  Class    Attributes

      a         1x1                  8  cell               

      b         3x3                 72  cell               

      c         2x2x2               64  cell               

    使用cell函数创建空元胞数组的主要目的,是为数组预先分配连续的存储空间,节约内存占用,提高执行的效率。

    5.2  Cell数组的寻访

    元胞数组的寻访和一般数组的寻访类似,但是情况更为复杂。

    对于二维数组A来说,A(2,4)表示的就是数组第2行第4列上的元素。但是对域元胞数组来说就不这么简单了。在元胞数组中,元胞和元胞里的内容是两个不同范畴的东西。因此,寻访元胞和元胞中的内容是两种不同的操作。为寻访不同的内容MATLAB设计了两种不同寻访的方法:“元胞外标识(cell indexing)”和“元胞内编址(Content addressing)”。

    以元胞数组A为例,A(2,4)指的是元胞数组中的第2行第4列的元胞元素,而A{2,4}指的则是元胞数组中的第2行第4列的元胞内容。注意:这两种方式的区别仅在于使用的括号不同。

    【例3-25】  元胞数组的寻访示例。

    >> a={20,'matlab';ones(2,3),1:3}

    a =

        [        20]    'matlab'    

        [2x3 double]    [1x3 double]

    >> str=a{1,2}       %  返回字符型数组stra{1,2}表示对应元胞的内容

    str =

    matlab

    >> class(str)       %  查看变量str的数据类型,结果确为字符型

    ans =

    char

    >> str2=a(1,2)      %  a(1,2)表示元胞数组中的一个元胞

    str2 =

        'matlab'

    >> class(str2)      %  查看变量str2的数据类型,结果为元胞数组

    ans =

    cell

    0050e9cfbc1c237f0ad5d5d25cbb0b24.png

    展开全文
  • 用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个函数。就像没有str2cell一样。实现str2cell功能的函数是cellstr,将...

    用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。

    我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个函数。

    就像没有str2cell一样。

    实现str2cell功能的函数是cellstr,将字符数组转换为cell型字符串数组

    函数语法为c = cellstr(S)

    它的作用是:将字符数组S中的每行分割成为cell细胞元组C的一个元素。并删除S的每行尾部空格

    正好与char相反,char是将cell字符串数组转化为字符数组s=char(c)

    很多人分不开字符数组和字符串什么区别。

    >>str1='i love matlab' % 这是一个字符数组,也是一个字符串

    str1 =

    i love matlab

    >>str2=['I ';'am ';'a ';'boy'];% 这是字符数组,由于是数组,所以每一行必须具有相同的列数(字符数相同),不够补空格

    str2 =

    I

    am

    a

    boy

    由于字符数组必须满足每一行具有相同的字符数,所以输入时很麻烦。通常情况我们使用char函数来完成自动补充空格或者创建字符串cell细胞元组。

    >>char('i','love','matlab') % char函数会自动补充空格

    ans =

    i

    love

    matlab

    >>{'i','love','matlab'} % 在cell字符串中,每个单元都可以完全不同的内容,所以,不需要补充空格。

    ans =

    'i' 'love' 'matlab'

    下面来看几个例子:

    例1:创建一个字符串数组,记住补空格

    >>S= ['abc '; 'defg'; 'hi '] (下划线代表空格)

    S =

    abc

    defg

    hi

    >>whos S

    Name Size Bytes Class

    S 3x4 24 char array

    例2:下面使用cellstr将字符数组,转换为3*1的cell细胞元组,此时尾部空格会自动删除 :

    >>c = cellstr(S)

    c =

    'abc'

    'defg'

    'hi'

    >>whos c

    Name Size Bytes Class

    c 3x1 294 cell array

    例3:再使用char函数将cell字符串转换为字符数组

    >>char(c)

    ans =

    abc

    defg

    hi

    >> whos ans

    Name Size Bytes Class Attributes

    ans 3x4 24 char

    展开全文
  • 1进入大学,理工科学生开始经常听到一个词——MATLAB。做实验的时候会听到它,上高数课的时候会听到它,处理数据的时候会听到它,建模画图的时候依然会听到它……MATLAB究竟是怎样的一个软件,让众多理工科大佬对它...
    1

    进入大学,理工科学生开始经常听到一个词——MATLAB

    实验的时候会听到它,上高数课的时候会听到它,处理数据的时候会听到它,建模画图的时候依然会听到它……

    MATLAB究竟是怎样的一个软件,让众多理工科大佬对它如此推崇备至?

    2

    MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。它拥有强大的数据处理能力和可视化功能,应用范围十分广泛。

    44572ba81cfb741fc0c436ec41321a25.png788d4526526bd65c91af39af6b2d6ba6.png438ae14228cdc4789795b0284af14e94.pngbb023937cc0aae84a1874917fcf0865c.png

    尤其是数学建模中很多重要的可视化,都可以通过MATLAB实现。

    5f11644ded67b6597384155a82b87227.pngcc9aecc2035861ea7c938e1c80c15b6f.png

    3

    功能如此强大的软件,实际上学习起来并不困难。学习MATLAB就像是学习一门新的编程语言,而且不需要任何基础。只要一台电脑,就可以感受MATLAB的魅力。

    为了帮助同学们更加快速地上手进阶MATLAB,数学建模协会特别邀请到了任桐鑫学长来为大家做专题讲座。

    66297183c818527ff214f7477afafe9a.png

    本次MATLAB讲座的主要内容有:

    l  MATLAB功能简介

    l  MATLAB中的基本数据类型和操作:向量、矩阵、字符串、cell、structure等

    l  MATLAB流程控制:条件和循环语句

    l  MATLAB绘图:二维绘图、三维绘图、图表格式调整、位图和矢量图片的导出

    l  常用MATLAB Toolbox介绍与应用

    l  MATLAB进阶1:并行计算和向量化表达

    l  MATLAB进阶2:使用table类型进行数据建模

    l  获取帮助的方法和进一步的学习建议

    20e9748a167bbd9f2c823669e50b06c0.png

    10月9日(周三)18:00-19:30

    28dc6469abc18936701ed8ad0fb8098c.png

    理科大楼6号楼706会议室

    有兴趣的同学,可以进入上海交通大学软件授权中心http://lic.si.sjtu.edu.cn/Softs 使用jAccount登录,免费安装正版MATLAB,相关安装指南见软件详情页。因为讲座当场会涉及到大家在台下一起操作,所以请同学提前安装好MATLAB

    d69f6bec807ad49e3c9f79b722faf0a8.pngfa1ff7de3326521d5ff4c057a9f70118.png593dc19b86975871a9ad58976eac99a7.png

    4

    上海交通大学数学建模协会新学期志愿者招募即将开始,目前招募企划有:

    l 宣传部 2~4人 负责做海报、写推文、维护公众号、协会推广;

    l 组织部4~5人 负责组织讲座、协会内聚会  

    l 技术部6~8人 负责协会内部研讨会(一~三周一次)、整理教学用资料、公众号内容整理书写

    l 秘书处2~4人 负责管理资金、会议记录、活动拍照

    协会成员的福利包括但不仅限于:

    l Matlab、LaTex等常用软件工具的培训;

    l 定期的内部知识分享交流活动;

    l 更丰富的建模课程;

    l 全面的竞赛编程资料;

    l 大佬手把手带竞赛

    5

    数学建模协会在本学期将会陆续推出

    l Latex排版

    l 数据分析与数据可视化

    l 高阶数学模型

    l ……

    等相关讲座和培训,敬请期待。

    BONUS

    选择Matlab参考书最关键的一点,就是参考书和自己目前能力要相匹配。选的参考书过于简单或过于困难,既浪费钱,又浪费时间和心情。为此,我们为大家准备了入门参考书和进阶参考书各一本朋友圈/QQ空间转发本条推送并集赞88个,可现场任选一本带走。数量有限,先到先得哦~

    155eeae4bde8b5c21e18d4e92c749ad2.png893a7a7f4c215a1d6780248afd57630c.pngcea16503a3dbbddae78ff4ab6467c477.png
    展开全文
  • 一、matlab编程中最常用的几个命令clear all; %清除Workspace中的所有变量clc%清除Command Window中的所有命令二、最常用的几种变量类型变量名区分大小写,强调变量名长度不超过63位,一般不要超过10位;变量名以字母...

    一、matlab编程中最常用的几个命令

    clear all;    %清除Workspace中的所有变量

    clc %清除Command Window中的所有命令

    二、最常用的几种变量类型

        变量名区分大小写,强调变量名长度不超过63位,一般不要超过10位;

        变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点;

        变量名应简洁明了;

    T = 2

    t = 3

    result=T*t*2

    one=int8(2)             %%有符号整型int8

    two=int16(-2)          %%有符号整型int16

    three=uint32(20)     %%无符号整型  

    four=uint64(80)

    five=single(1.6)        %%单精度浮点型

    six=23                       %%默认为双精度浮点型

    seven=true                %%逻辑型,存的值为1

    eight='Max'               %%字符串型

    ten.name='Hello Max'    %%结构体

    eleven=@cos             %%函数句柄类型

    matrix= rand(6,9)           %矩阵随机三行五列  0到1之间

    rows = size(matrix, 1)     %矩阵有几行

    cols = size(matrix, 2)       %矩阵有几列

    三、字符与字符串深入学习

    string= 'a'

    abs(string)                  %转换成ASCI

    char(65)                      %转换成字母,代表A

    switch=num2str(65)   %将数字转换成字符串,多了'  '

    doc num2str               %遇到不懂的函数直接doc 谷歌在线翻译不害怕

    str = 'I am Max'

    length(str)                    %字符串长度为8

    四、矩阵深入学习

    A = [3 6 2; 6 5 6; 8 7 9]

    e0feb8b2ea623934129320dbfad7f357.png

    B = A'                          %转置矩阵

    97df6424b7be1c54ad1d6c040ef49e5d.png

    C = A(:)                        %变成一列

    D = inv(A)                    %逆矩阵

    6d71187b80a047e681ff422cda7b78c5.png

    A * D                           %矩阵相乘

    294d2af7b94a95e88b8bb466630211e9.png

    五、元胞数组深入学习

    A = cell(1, 6)   %定义一行六列

    A{2} = eye(3)  

    A{5} = magic(5)     %魔方

    d1faf8e1197ae3649cd512b183938d19.png

    B = A{5}

    3dce7c6ebd9175a2e029a2105d59a015.png

    B=A{2}

    4cbefbef8751b91b676920cf1aa0b1d5.png

    举例一个比较复杂的结构体,包括了两个

    books = struct('name',{{'Max','Tom'}},'age',[16 17])

    显示:

    books=

            name:{'Max' 'Tom'}

            age:[16 17]

    books.name

    显示:

    ans=

             'Max' 'Tom'

    books.name(1)

    显示:

    ans=

             'Max

    books.name{1}

    显示:

    ans=

    Max

    展开全文
  • 鸣人不说暗话,大家好,我是模派君,这一小节的主题就是带大家了解matlab世界中的变量和命令。在进入主题之前,我们先了解matlab变成如何下手,上图;我们通过图片可以看到,我们在命令框中进行输入1和输入2的操作,...
  • STR = CELL2STR(CELLSTR)将二维单元串CELLSTR转换为MATLAB字符串,以便EVAL(STR)生成原始单元串。 用作相应的MAT2STR,但适用于字符串的单元格数组,而不是标量矩阵。 示例 cellstr = {'U-234','Th-230'}; cell...
  • %char转换为cell长度*cell中最长字符串的长度 b = char(a); %将矩阵的某行赋值给另外一个全新的矩阵,功能类似于去除某些不使用的行 for i = 1 : 64 c(i,:) = b(5*i,:); end %|28|d2|44|dc|74|a3|ab|cd|c0|a8...
  • 从.txt文档里读取了一列字符串MATLAB里,存成了一个数组A,在取A指定位置的字符串与一个字符串str判断两个字符串是否相等的时候,报错**“未定义与 ‘cell’ 类型的输入参数相对应的运算符 ‘==’”**。...
  • MATLAB版的notejupyterMATLAB Live Editor 简介https://zhuanlan.zhihu.com/p/32836871知乎一个教程 1、 matlab软件的界面以及基本的一些操作...”的用法以及输出格式控制等2、 有哪些数据类型,字符,数值,cell和s...
  • 转载自:http://blog.sina.com.cn/s/blog_6a388c8f01015n04.html用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个...
  • matlab中元胞让变量的形式十分的灵活,如a = cell(1,2) a{1,1} = [1,2;3,4]; a{1,2}=[1,2,3,4];元胞的每一个单元中可以包含不同size的矩阵,这种方式在一些场合将会十分的便利。但是在frotran,c语言中确没有办法...
  • matlab,将元胞数组转字符串

    万次阅读 2019-03-31 09:25:43
    将元胞数组转字符串直接用char函数即可 如下 dataTemp = char(db.filename(k)); fileData = fopen('Pdata.txt'); db = readtable('Pdata.txt'); cellArray={}; count = 1; for k = 1:size(db, 1) dataTemp = ...
  • 方法一: caseFileName = 'E:\test\test.... %分割之后是cell类型,需要转换为char类型 fileName = nameTmp(1:length(nameTmp)-4); % fileName 结果为test 方法二: 我使用的是方法二 caseFileName = 'E:\test\
  • 1、获取文件名方法1 caseFileName = 'E:\test\test.txt' ... nameTmp = char(nameList(length(nameList)))%分割之后是cell类型,需要转换为char类型 fileName = nameTmp(1:length(nameTmp)-4) % file...
  • matlab开发-cell2str

    2019-08-21 11:36:03
    matlab开发-cell2str。用matlab语法将字符串的二维单元格数组转换为字符串
  • 1元胞cell转换为字符串 matlab版本2020a 转换方法:利用string转换 例如 a={'阿呆1';‘阿呆2’;'阿呆3'} b=string(a) 2元胞cell转换为数据类型 转换方法:1)先转为string类型,2)通过str2double转为数据...
  • 各位大神好,我的数据目前是一个三维的cell数据,我想将它转化为三维的double数据。 ...需要字符串或字符数组输入。   请问各位大神,这该如何解决啊,救救小白T T</p>
  • matlab开发-CELL2STR

    2019-08-22 11:42:26
    matlab开发-CELL2STR。cell2str将字符串的单元格数组转换为字符数组。
  • matlab开发-cell2char

    2019-08-25 18:15:26
    matlab开发-cell2char。函数将字符串的单元格数组转换为字符数组。
  • MATLAB double、str、cell间的类型转换

    万次阅读 多人点赞 2014-11-26 00:58:40
    注:转换的前提是数组的格式符合目标数组的要求,能够转换。...int2str整数转换为字符串数组,非整数将四舍五入 num2str非整数数组转化为字符串数组 mat2str%数值数组转化为字符串数组 cell2mat mat2
  • 1、把多幅图像放在str(1,m)(这是一个cell包)中然后可以用imcrop(str{1,m});对其中某张图进行截图吗 应该是可行的 ...但是对话框里面是一个cell,矩阵被包在‘’里成了字符串字符串又被成了cel...
  • 常用数据类型numeric数值char字符logical逻辑––cell单元、细胞、元胞struct结构数值型整数:带符号和无符号浮点数:单精度和双精度在缺省(默认)状态下,Matlab 将所有的数都看作是双精度的浮点数。双精度数值变量...
  • matlab——cell(以及和struct的转换)

    万次阅读 2017-11-30 17:17:42
    它与数组的区别是:每个元素可以是不同类型的,可是不同大小的矩阵,也可以是字符串,结构体等, 使用元胞数组要区分(),{}的区别。   1)创建元胞数组 [cpp] view plain copy  print? >> c(1...
  • 之所以会涉及使用cell,是因为涉及字符串、数字在同一个“矩阵”中,这时候需要使用cell进行存储,在数据处理时候又需要进行cell转矩阵,因此掌握这些转换方法可以使得程序更加简洁高效。 使用到的语法 cell2mat % ...
  • MATLAB数据转化num,str,cell,char

    千次阅读 2019-05-26 15:12:28
    数字变为字符串 a=num2str(123) cell2mat:将cell转换为mat的char型 str2num:将mat从char转换为double型 cellstr:将char转cell num2str:将double转char num2cell:将double直接转cell ...
  • MATLAB数据类型笔记

    2020-11-03 12:06:16
    数据类型 数值型数组(double) 元胞数组(cell) 结构体(struct) 字符(char) 字符串(string) ...### Matlab字符串 字符串数组 数据类型转换 常用查找替换函数 查找字符 strfind()和findstr() ...
  • 代码如下%从northEastChina20文本中读取经纬度坐标及台站名,该文件中存放格式为三列,第一列是经度,第二列是纬度,第三列是台站名的三... %将cell转换成字符串latlon20=[lat,lon];把纬度放在第一列,经度放在第二...
  • MATLAB

    2019-10-24 22:25:42
    结构数组中的元素可以是数值,字符串。常用函数如下:在这里插入图片描述 1.创建: 用struct函数 2.转换: c=struct2cell(s) s=cell2struct c代表单元数组,s代表结构数组 3.数据处理: 要先转换为单元数组,再进行...
  • matlab常用函数总结

    2017-11-02 16:09:19
    常用类型转换函数: str2num ...int2str整数转换为字符串数组,非整数将四舍五入 num2str非整数数组转化为字符串数组 mat2str%数值数组转化为字符串数组 cell2mat mat2cell num2cell(注:没有cell2nu

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

matlab字符串转cell

matlab 订阅