Matlab自学笔记二十九:元胞数组的创建、索引和转换方法

本文主要是介绍Matlab自学笔记二十九:元胞数组的创建、索引和转换方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.概念

元胞数组(cell array)是一种具有容器特性的数据类型,每个元素可以包含任何类型的数据;

2.创建方法

(1)方法一:使用大括号{};

(2)方法二:使用函数cell;

(3)元胞数组创建和扩展时默认填充元素是空矩阵[]

程序示例:

a={}

b={1,2,magic(3)

    'a',["a","b"],[]}  %分别双精度标量、3阶魔方矩阵、字符、字符串数组、空矩阵。2行用回车分割,或用分号分割

cell(2,3)  %创建2行3列元胞数组

3.如何判断元胞数组类型

判断是否为元胞数组使用函数iscell;

程序示例:

a={}

iscell(a)  %判断元胞数组

4.索引方法

元胞数组的索引分为两种方式:

(1)小括号()表示查找数组中的某一元素;

(2)大括号{}表示查找数组中某一元素的值;

举例说明,元胞数组c={1,’abc’},这是1*2的元胞数组,包含2个元素,查找第二个元素使用索引c(2),返回{‘ab’},它是一个1*1的元胞数组,如果使用大括号索引c{2},返回’ab’,它是一个1*2的字符向量;

程序示例如下:

b={1,2,magic(3)

    'a',["a","b"],[]}

b(1,3)  %索引元胞数组的元素

b{1,3}  %索引元胞数组的元素的内容

b{1,1:3}  %索引1行1-3列元素,未指定输出变量,默认ans

[v1,v2,v3]=b{1,1:3}  %索引3个元素值,并赋值给3个变量

v=b{1,1:3}  %当仅指定1个输出变量,则只返回第1个值

b{1,3}(1:2)  %二级索引

5.元胞数组数据连接

这也是大家经常编程报错的知识点,程序示例如下:

b={1,2,magic(3)

    'a',["a","b"],[]}

%[b{1,1:3}]  %维度不同无法连接

 [b{1,1:2}]  %2个索引到的元素,连接为1*2矩阵

6.元胞数组的转换

每个元胞元素类型相同且大小相同才可进行转换,元胞数组与数值型的转换函数包括cell2mat、mat2cell,程序示例如下:

b={1,2,magic(3)

    'a',["a","b"],[]}

%cell2mat(b)  %b没有明确结果类型因此报错

m=cell2mat({1 2})  %数值型可以转换为矩阵

n=cell2mat({'a','b'})

%cell2mat({"a","b"})  %该转换函数不支持字符串数组

mat2cell(m,1)  %第2个参数1表示1行1列元胞数组,将整个矩阵看做元胞数组元素

mat2cell(m,1,[1 1])  %第3个参数指定了列数为2列,每列个数分别为1

mat2cell(n,1)

mat2cell(n,1,[1 1])

7.初始化和预分配内存

元胞数组不需要完全连续的内存,但每个元素需要连续的内存,对大型的元胞数组,增加元素数量可能导致Out of Memory错误,因此,必要时,元胞数组需要初始化和预分配内存,编程示例如下:

c=cell(100,100)  %对大型元胞数组,预分配内存

d={}  %初始化后(也可不初始化,因Matlab使用变量不需提前声明,因此也可直接赋值)

d{100,100}=[]  %用数组扩展的方式,将第100行第100列元素设置为空,其他未指定元素默认用空矩阵填充,完成预分配内存

视频推荐

Matlab/1.34/元胞数组/夜发清溪向三峡 思君不见下渝州

Matlab/1.3/调用函数/何须浅碧深红色,自是花中第一流

14.1 Matlab解微分方程

45.1 一个实例入门Matlab深度学习|卷积神经网络

31.6 Matlab绘制条形图柱状图,改变单个柱的颜色,堆叠显示,改变线型线宽

31.17 干货汇总Matlab绘图/三维线图/三维柱状图/三维饼图/函数三维图

43.4 Matlab BP(反向传播)神经网络/看完这个可以放弃B站了

66.15/Matlab有点飘:未定义函数或变量/函数或变量无法识别

36.4 GUI列表框弹出菜单实例:信息注册系统

End

这篇关于Matlab自学笔记二十九:元胞数组的创建、索引和转换方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/904777

相关文章

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

hdu 1166 敌兵布阵(树状数组 or 线段树)

题意是求一个线段的和,在线段上可以进行加减的修改。 树状数组的模板题。 代码: #include <stdio.h>#include <string.h>const int maxn = 50000 + 1;int c[maxn];int n;int lowbit(int x){return x & -x;}void add(int x, int num){while

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免