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

相关文章

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

java Stream操作转换方法

《javaStream操作转换方法》文章总结了Java8中流(Stream)API的多种常用方法,包括创建流、过滤、遍历、分组、排序、去重、查找、匹配、转换、归约、打印日志、最大最小值、统计、连接、... 目录流创建1、list 转 map2、filter()过滤3、foreach遍历4、groupingB

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

使用SpringBoot创建一个RESTful API的详细步骤

《使用SpringBoot创建一个RESTfulAPI的详细步骤》使用Java的SpringBoot创建RESTfulAPI可以满足多种开发场景,它提供了快速开发、易于配置、可扩展、可维护的优点,尤... 目录一、创建 Spring Boot 项目二、创建控制器类(Controller Class)三、运行

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

Python中列表的高级索引技巧分享

《Python中列表的高级索引技巧分享》列表是Python中最常用的数据结构之一,它允许你存储多个元素,并且可以通过索引来访问这些元素,本文将带你深入了解Python列表的高级索引技巧,希望对... 目录1.基本索引2.切片3.负数索引切片4.步长5.多维列表6.列表解析7.切片赋值8.删除元素9.反转列表