MATLAB中的cell数组:元胞是个筐,什么都能装

元胞数组是一种包含名为元胞cell的数据类型,其中的每个元胞都可以包含任意类型的数据。将索引括在圆括号 () 中可以引用元胞集。使用花括号 {} 进行索引来访问元胞的内容。

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

关注公众号:数学建模BOOM,同名up的b站公开课课件和其他数模资料等在群文件;本文件名“whatcell.mlx”;另外在公众号回复“论文”,可获取各项数模竞赛历年赛题与获奖论文

clear,clc

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

c = [a,b]   % c里全是字符了;且a和b维度不同时无法串联

得到输出:

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

输出:

ans =
1 3 5
ans =
5

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

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

建模手、论文手和编程手分别该怎么准备数学建模?新手常见疑问icon-default.png?t=N7T8https://mp.weixin.qq.com/s/0XCMGS_GSm_3oH8qM63zQA想参加数学建模比赛,但什么都不会,该怎么学呢?数学建模的学习路径icon-default.png?t=N7T8https://mp.weixin.qq.com/s/H-SetKPLCLbMrJiCs9vr6w

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数学建模BOOM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值