matlab读取struct数据结构,matlab基本数据结构struct-程序员宅基地

技术标签: matlab读取struct数据结构  

一起来学演化计算-matlab基本数据结构struct

觉得有用的话,欢迎一起讨论相互学习~Follow Me

结构数组struct

MATLAB提供了两种定义结构的方式:直接应用和使用struct函数

使用直接引用方式定义结构

与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个复数变量x

x.real = 0; % 创建字段名为real,并为该字段赋值为0

x.imag = 0 % 为x创建一个新的字段imag,并为该字段赋值为0

x =

real: 0

imag: 0

然后可以将其动态扩充为数组:

x(2).real = 0; % 将x扩充为1×2的结构数组

x(2).imag = 0;

在任何需要的时候,也可以为数组动态扩充字段,如增加字段scale:

x(1).scale = 0;

这样,所有x都增加了一个scale字段,而x(1)之外的其他变量的scale字段为空:

x(1) % 查看结构数组的第一个元素的各个字段的内容

ans =

real: 0

imag: 0

scale: 0

x(2) % 查看结构数组的第二个元素的各个字段的内容,注意没有赋值的字段为空

ans =

real: 0

imag: 0

scale: []

应该注意的是,x的real、imag、scale字段不一定是单个数据元素,它们可以是任意数据类型,可以是向量、数组、矩阵甚至是其他结构变量或元胞数组,而且不同字段之间其数据类型不需要相同。例如:

clear x; x.real = [1 2 3 4 5]; x.imag = ones(10,10);

数组中不同元素的同一字段的数据类型也不要求一样

x(2).real = '123';

x(2).imag = rand(5,1);

甚至还可以通过引用数组字段来定义结构数据类型的某字段

x(3).real = x(1); x(3).imag = 3; x(3)

ans =

real: [1x1 struct]

imag: 3

使用struct函数创建结构

使用struct函数也可以创建结构,该函数产生或把其他形式的数据转换为结构数组。

struct的使用格式为: s = sturct('field1',values1,'field2',values2,…);

该函数将生成一个具有指定字段名和相应数据的结构数组,其包含的数据values1、valuese2等必须为具有相同维数的数据,数据的存放位置与其结构位置一一对应的。对于struct的赋值用到了元胞数组。数组values1、values2等可以是元胞数组、标量元胞单元或者单个数值。每个values的数据被赋值给相应的field字段。

当valuesx为元胞数组的时候,生成的结构数组的维数与元胞数组的维数相同。而在数据中不包含元胞的时候,得到的结构数组的维数是1×1的。

s = struct('type',{'big','little'},'color',{'blue','red'},'x',{3,4})

s =

1x2 struct array with fields:

type

color

x

% 得到维数为1×2的结构数组s,包含了type、color和x共3个字段。这是因为在struct函数中{'big','little'}、{'blue','red'}和{3,4}都是1×2的元胞数组,可以看到两个数据成分分别为:

s(1,1)

ans =

type: 'big'

color: 'blue'

x: 3

s(1,2)

ans =

type: 'little'

color: 'red'

x: 4

% 相应的,如果将struct函数写成下面的形式:

s = struct('type',{'big';'little'},'color',{'blue';'red'},'x',{3;4})

s =

2x1 struct array with fields:

type

color

x

% 则会得到一个2×1的结构数组。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33554506/article/details/115929992

智能推荐

Don't Laugh!I'm An English Book笔记(一)-程序员宅基地

文章浏览阅读73次。人体: 所有的life都是由cell构成的,我看不到这些cell,大概是因为我的视力不太好吧。如果有一台microscope就可以看到chromosome了。连gene也可以看到了。:) Cell聚集到一起形成tissue,再把tissue组织到一起形成organ。Organ是由blood vessel提供营养的。从心脏过来的叫artery,往..._don't laugh. i'm an english book

人工智能开始改变生活方式,区块链在人工智能时代的作用_智能时代区块链人工智能-程序员宅基地

文章浏览阅读403次。近年来,伴随着无人机、语音识别、虚拟现实(VR)、自动驾驶、人脸识别进入我们的生活,人工智能已经开始改变我们的生活方式,影响着社会的发展方式,同时它的发展也给人类社会带来了一系列的挑战,诸如隐私、安全以及公平等问题。如果说,人工智能是智能革命的加速器,那么区块链则是驾驭智能革命这趟高速列车的中控系统。12月19日,华东政法大学人工智能与大数据指数研究院院长高奇琦的新书《人工智能治理与区块链革命》由上海人民出版社出版,并在朵云书院上海中心旗舰店举行首发式,这是国内首本将人工智能和区块链放在一起讨论的专业学._智能时代区块链人工智能

华三核心IRF堆叠_irf优先级不起作用-程序员宅基地

文章浏览阅读600次,点赞12次,收藏11次。h3c交换机IRF堆叠及脑裂配置_irf优先级不起作用

springboot整合springretry重试框架_spring-retry 依赖包-程序员宅基地

文章浏览阅读1k次。添加POM<!-- spring-retry依赖--> <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> ..._spring-retry 依赖包

GetGuru替代方案:4个理由告诉你为什么选择HelpLook-程序员宅基地

文章浏览阅读132次。​随着知识管理在现代企业中的重要性日益凸显,选择一款高效、稳定的知识库软件成为了关键。然而,市场上的知识库软件众多,如何选择适合自己的产品呢?本文将为你介绍GetGuru的替代方案——HelpLook,并从四个方面为你分析为什么选择HelpLook。

Java多线程系列--sun.misc.Unsafe的理解-程序员宅基地

文章浏览阅读682次。前言Unsafe类是在sun.misc包下,不属于Java标准。但是很多Java的基础类库,包括一些被广泛使用的高性能开发库都是基于Unsafe类开发的,比如Netty、Hadoop、Kafka等。使用Unsafe可用来直接访问系统内存资源并进行自主管理,Unsafe类在提升Java运行效率,增强Java语言底层操作能力方面起了很大的作用。Unsafe可认为是Java中留下的后门,提供..._sun.misc.unsafe

随便推点

CW32移植FreeRTOS-程序员宅基地

文章浏览阅读74次。7、打开工程的Manage Project Items,添加FreeRTOS\port,并为其添加FreeRTOS\port\MemMang里面的heap_4.c和FreeRTOS\port\RVDS\ARM_CM0里面的port.c文件。4、将刚才下载的FreeRTOSv9.0.0\FreeRTOS\Source\portable里面的RVDS跟MemMang文件夹复制到新建的FreeRTOS\port文件夹下面。3、将下载后的文件解压,我们需要的是里面一个名为FreeRTOS的文件夹。

STM32 定时器输入捕获实现红外遥控数据接收_利用输入捕获实现红外接收解码-程序员宅基地

文章浏览阅读1.3w次,点赞15次,收藏80次。之前已经写过了一个使用定时器普通计时功能来识别红外遥控数据的文章。本次是使用定时器输入捕获来实现,这种方法比起定时器普通计数来说要更加复杂一些,不过效果会更好。一、原理1、红外发射协议红外发射协议已经在之前的文章中写过,在此就不赘述。2、定时器计数和输入捕获定时器就是按照一个特定的频率对计数值进行加一或减一操作,当数值溢出时则产生一个标志或中断。定时器的输入捕获就是可以测量输入信号的脉冲宽_利用输入捕获实现红外接收解码

Android Recycler View解决item宽度无法填充屏幕(没有父容器参数也行)_android recyclerview item宽-程序员宅基地

文章浏览阅读1.3k次。在网上看了很多关于如何解决RecyclerView 的item填充屏幕的文章,但是看到的那些文章几乎方法都一样,还是无法解决到我的问题。但是看了那么多文章之后终于从一篇文章中找到了灵感,地址是:RecyclerView Item 布局宽高无效问题探究。这篇文章中探讨了为什么item无法填充屏幕的原因。非常感谢这位作者! 废话我就不多说 ,进入正题。我们获得一个布局的时候 无非就是用infl_android recyclerview item宽

Yarn application has already ended! It might have been killed or unable to launch application master-程序员宅基地

文章浏览阅读2.5k次。启动命令:spark-shell --master yarn --driver-memory 4g --executor-memory 4g --num-executors 6 --executor-cores 4完整报错如下:Setting default log level to "WARN".To adjust logging level use sc.setLogLev..._yarn application has already ended! it might have been killed or unable to l

springboot事务失效:try catch‘吃掉’异常场景_springboot 添加事务 trycatch-程序员宅基地

文章浏览阅读1.7k次,点赞5次,收藏5次。我们在写业务逻辑时,对于有些方法逻辑中,可能会抛异常,比如增删改查的dao层接口throws异常,那在service层中调用后我们需要进行try catch捕获异常,不捕获的话最终也需要在controller层捕获;这里就需要关注一个问题:try catch 语句会让。使用try catch后,相当于就是捕获了异常,事务管理就无感知有异常抛出了,相当于把异常吃掉了,这样事务管理就认为是程序没有出异常了。这样假设在修改接口中,涉及到了异常,事务就会失效,失效则不会回滚,数据就会被修改,无法回到修改前状态。_springboot 添加事务 trycatch

数据结构复习(树和二叉树)_将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,-程序员宅基地

文章浏览阅读3.6k次,点赞5次,收藏39次。树和二叉树选择题已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac , 它的前序遍历是( )A acbedB decabC deabcD cedba深度为5的二叉树至多有多少个节点( )A 16B 32C 31D 10具有10个叶子结点的二叉树中有( )个度为2的结点。A 8B 9C 10D 11如果结点A是结点B的双亲,而且结点B还有4个兄弟,则结点A的度是A 2B 3C 4D 5以二叉链表作为二叉树的存储结构,在具有n个节点的二叉链表中(n&_将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,

推荐文章

热门文章

相关标签