matlab单元数组和结构,Matlab中单元数组和结构数组
前言:
单元数组和结构数组是一种新的数据类型,能将不同类型、不同维数的数组组合在一起,从而方便对不同的数据类型方便管理和维护。
如上图所示的2*2矩阵中,分别存储着四种不同的数据类型,分别为数组、字符串、空矩阵、复数矩阵。
一、单元数组(细胞数组)
在单元数组中,通过单元数组的名字是不能访问相应的元素,只能访问对应的索引号,因为单元数组中存储的是指向某种数据结构的指针。
创建并赋值:
1.赋值语句创建:分为内容创建和单元索引创建
内容创建:一个一个元素进行创建,用大括号
c{1,1}=[1 2;3 4];
c{1,2}=[1 2;3 4;2 14];
c{2,1}=[];
c{2,2}='i love a pig';
b=c(2,2);
d=c{2,2};
c
b
d
%%%%%%
result:
c =
[2x2 double] [3x2 double]
[] 'i love a pig'
b =
'i love a pig'
d =
i love a pig
单元索引创建:一个一个单元进行创建,用小括号
c(1,1)={[1 2;3 4]};
c(1,2)={[1 2;3 4;2 14]};
c(2,1)={[]};
c(2,2)={'i love pig'};
b=c(2,2);
d=c{2,2};
c
b
d
%%%%%%
result:
c =
[2x2 double] [3x2 double]
[] 'i love a pig'
b =
'i love a pig'
d =
i love a pig
注意:单元矩阵与普通矩阵名字不能相同,否则偶同矩阵覆盖单元矩阵。
2.cell()函数创建:
>> b=cell(2,3)
b =
[] [] []
[] [] []
对它赋值如上面的方法,分内容和单元创建两种方法。
3.用大括号直接创建并赋值:
如3*4的单元矩阵
>> b={[2 3;4 6],'you are a pig',[],[2;2;1];[2 3;4 6],'you are a pig',[],[2;2;1];[2 3;4 6],'you are a pig',[],[2;2;1]}
b =
[2x2 double] 'you are a pig' [] [3x1 double]
[2x2 double] 'you are a pig' [] [3x1 double]
[2x2 double] 'you are a pig' [] [3x1 double]
总结:第三种创建方法最简单和方便!
4.如何显示
上面的方法也介绍如何显示单元数组,但只能显示其中一个元素。
1)用celldisp()函数能全部整体显示单元数组的细节内容。
2)用cellplot()函数以图形方式展现:
c{1,1}=[1 2;3 4];
c{1,2}=[1 2;3 4;2 14];
c{2,1}=[];
c{2,2}='i love a pig';
cellplot(c)
结果如图:2*2的单元矩阵,红色表示占用内存,白色相反,字符串最后怎么没开辟内存?
二、结构数组
引入结构数组原因:普通数据和单元数组只能通过下标访问数组元素,而结构数组是元素带名字的,也可以存储不同类型的元素,元素被称为域,数组名.域名可以访问结构数组的具体元素值。
1.创建
赋值语句创建:
student(1).name='bob';
student(1).sex='man';
student(1).age='25';
student(1).score=[98 99 100];
student(2).name='Plimmer';
student(2).sex='man';
student(2).age='12';
student(2).score=[98 9 100];
student(3).name='liky';
student(3).sex='girl';
student(3).score=[98 99 97];
比如:执行student(2).age 返回 ans =12;
执行student(3).age 返回 ans=[];
执行student(2) 返回
ans =
name: 'Plimmer'
sex: 'man'
age: '12'
score: [98 9 100]
struct()函数创建:
帮助文档的定义:s = struct(field1,value1,...,fieldN,valueN)=sstruct(域名,值,域名,值,域名,值,。。。。),上面的用struct()来实现:
>> student(1)=struct('name','bob','sex','man','age',25,'score',[98 99 100]);
student(2)=struct('name','Plimmer','sex','man','age',12,'score',[98 9 100]);
student(3)=struct('name','liky','sex','girl','age','','score',[98 99 97]);
%operate:
>> student(2).name%访问数组名student(2)的域名name
ans =
Plimmer
>>student(2).hobby='music'%增加域名hobby
student =
1x3 struct array with fields:
name
sex
age
score
hobby
>> student(1)%访问数组名student(1)
ans =
name: 'bob'
sex: 'man'
age: 25
score: [98 99 100]
hobby: []
用rmfield()函数去删除结构数组里的域名。
s = rmfield(s,field) removes the specified field or fields from structure array s
>> student(1)=struct('name','bob','sex','man','age',25,'score',[98 99 100]);
student(2)=struct('name','Plimmer','sex','man','age',12,'score',[98 9 100]);
student(3)=struct('name','liky','sex','girl','age','','score',[98 99 97]);
%operate:
>> student=rmfield(student,'age')%一次只能删除一个域名
student =
1x3 struct array with fields:
name
sex
score
>> student%验证
student =
1x3 struct array with fields:
name
sex
score
>> fields={'age','sex','score'};%一次能删除多个域名
student= rmfield(student,fields)
student =
1x3 struct array with fields:
name
>> student%验证
student =
1x3 struct array with fields:
name
注:还有好多函数对结构数组进行操作,太多了,不写上面了碰到再说吧
三、参考资料
标签:数组,age,sex,score,Matlab,student,pig,单元,name
来源: https://blog.csdn.net/weixin_41213648/article/details/89575309
matlab单元数组和结构,Matlab中单元数组和结构数组相关推荐
- C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例
C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例 目录 一.简单介绍 二.结构体定义和使用 三. ...
- 结构体中引用另一结构体
结构体中引用另一结构体 1.自引用结构体 1.1不使用typedef时 2.1使用typedef时 2.互引用结构体 结构体引用主要分为自引用和互引用.我主要以实例展示如何使用,不会过多赘述太多,想必 ...
- python 查找excel内容所在的单元格_python 读取excel中单元格的内容
python 读取excel中单元格的内容 excel文件内容: 读取excel代码: # coding=utf-8 import xlrd import sys reload(sys) sys.se ...
- php 中如何设置单元格跨行,HTML表格中单元格跨行跨列
HTML表格中单元格跨行跨列 对于标准的表格,每一行的单元格 数量是一样的.但在实际使用中,经常会遇到跨行跨列的表格,这个时候,每一行的数量就不一样了. 一.定义 所谓"跨行",是 ...
- c语言中二维数组怎么,c语言中什么是二维数组
c语言中什么是二维数组 二维数组A[m][n],这是一个m行,n列的二维数组.以下是由应届毕业生小编整理关于c语言二维数组的内容,希望对大家有所帮助!更多相关内容请关注应届毕业生考试 网. c语言的二 ...
- c语言中字符串数组应用,C语言中字符变量字符串和字符数组应用.doc
C语言中字符变量字符串和字符数组应用 字符变量(type`char`?字符串(string)和字符数组(type`char`arrary)是C语言中非常重要的结构成分,也是应用编程中常发生混淆?导致错 ...
- python读取一行数组_python 把文件中的每一行以数组的元素放入数组中的方法
有时候需要把文件中的数据放入到数组中,这里提供了一种方法,可以根据文件结尾的标记进行数据拆分,然后再把拆分的文件放入数组中 # -*-coding: utf-8 -*- f = open(" ...
- java数组 js数组的长度_js中split()方法得到的数组长度问题
定义和用法 split() 方法用于把一个字符串分割成字符串数组. 语法 stringObject.split(separator,howmany) 参数 描述 separator 必需.字符串或正则 ...
- php中多维数组的长度,php中count获取多维数组长度的方法
这篇文章主要介绍了php中count获取多维数组长度的方法,实例分析了数组的原理并总结了数组长度计算的方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php中count获取多维数组长度的实 ...
- javascript字典中添加数组_在javascript中合并两个字典数组
您可以使用 Array#map方法生成新数组(假设两个数组的顺序相同). var lat = [{key:"2017-09-20T11:51:32.000Z", value:50. ...
最新文章
- 也说 ASP.NET MVC的 Script 管理
- 华硕笑傲珠峰,网络口碑营销巧打奥运擦边球
- 数字货币 BCH的混币神器CashShuffle
- TypeScript 的 generic 函数
- 隐藏界面没有必要应用场景
- 蚂蚁架构师郭援非:分布式数据库是金融机构数字化转型的最佳路径
- java实现——客户端登录
- 小米9将在MWC2019上登场:后置三摄拍照令人“中毒”
- 通过RHCE认证之路
- 使用EEMD时报错:TypeError: ‘module‘ object is not callable
- ps模糊照片变清晰步骤东方逐梦
- 佛祖保佑永无BUG 代码 (各种样式)
- 100php等于多少RMB,100000 CNY
- Unity UI框架的搭建
- F12变中文,竟如此简单?
- c语言控制台数字键打地鼠,C语言编程打地鼠
- Redis概述、安装、可视化访问
- vue js 复制div区域内容
- 高德地图之添加遮盖物
- React集成中国地图
热门文章
- 基础编程题目集 6-7 统计某类完全平方数 (20 分)
- C/C++排序算法(3)冒泡排序
- 数据3分钟丨​PingCAP DevCon 2021回顾;openGauss社区颁发首张OGCA认证证书
- 记录一次数据同步到数据仓库的架构与实践
- 对话华为云专家,摆脱无意义“内卷”
- 【nodejs原理源码赏析(5)】net模块与通讯的实现
- 野生前端的数据结构基础练习(5)——散列
- 【深入浅出etcd系列】1. 架构概览
- plusready html5,封装一个简单实用的 plusready 方法
- html怎么帮图片占位,css+html实现Skeleton Screen 加载占位图动画效果(带动画)