许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB元胞数组用法详解什么都能装

MATLAB元胞数组用法详解什么都能装

阅读数 16
点赞 0
article_banner


matlab中会遇到类型为cell即元胞的变量。官方定义元胞数组是一种包含名为元胞cell的数据类型,其中每个元胞都可以包含任意类型的数据。

翻译翻译:

猫(double数组)和老鼠(string数组)不能放在一起,会打起来(报错);直接拿筐盖住猫和老鼠(花括号括起来两个数组)就得到了一组筐(元胞数组),反正大家都是个筐没区别(元胞数组里都是元胞,为同一类型不会报错)。

关注公.众号:数学建模BOOM,回复“群”,b站公开课课件+其他数模资料等在群文件;群文件内本代码文件名“whatcell.mlx”;

代码块


clear,clc

% 定义double型数组(数组就单行矩阵),里面基本元素是双精度(double)数字
a = [1, 3, 5];
b = ["北京", "上海"];    % 字符串数组,里面基本元素是字符串

      复制成功
     
     
     
     

想把数组a和字符串b保存早一起且"不变质”?

代码块


c = [a,b]   % c里全是字符了;且a和b维度不同时无法串联
c(1)        % c已经彻底是个字符串了,无法得到原double数组a中的数值

      复制成功
     
     
     
     

得到输出:

c = 1×5 string 数组 "1" "3" "5" "北京" "上海" ans = "1"

c已经彻底是个字符串了,无法再得到原数组a中的数值(输出变成字符“1”而不是数字1)。

两个变量用花括号括起来,则定义为了元胞数组。其中的double数组a和字符数组b都变成了元胞a和元胞b。赋值给变量d得到的就是元胞数组d

代码块


d = {a,b}   % 元胞数组,原本的double和字符串都变成了“元胞”

      复制成功
     
     
     
     

输出:

d = 1×2 cell 数组 {[1 3 5]} {["北京" "上海"]}

代码无常,大筐装小筐。直接圆括号调用,得到的是元胞数组里的单个元胞:

代码块


d(1)        % 圆括号输出的仍为元胞、不是double数组

      复制成功
     
     
     
     

输出:

ans = 1×1 cell 数组 {[1 3 5]}

元胞毕竟只是筐,其内部没有变:第一个元胞是a,a是double数组。

用花括号设定元胞数组下标,即第一个元胞d{1},就能得到double数组a

代码块


d{1}        % 花括号输出其第一个元胞内容,即得到数组a
d{1}(3)      % 可得到数组a原本的内容,第三个数字是5

      复制成功
     
     
     
     

输出:

ans = 1 3 5
ans = 5

而把数组a写成两行试试:a = [1, 3, 5; 2 4 6];

此时c会报错,但d不会。因为元胞是个筐……



关注公.众号:数学建模BOOM,回复“论文”,获取历年国赛美赛和其他比赛赛题与获奖论文+更多数模学习资料~


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空