结构型变量的定义

结构型变量的相关函数

函数名 说明
struct 创建或转换结构型变量
fieldnames 得到结构型变量的属性名
getfield 得到结构型变量的属性值
setfield 设定结构型变量的属性值
rmfield 删除结构型变量中的属性
isfield 判断是否为结构型变量的属性
isstruct 判断变量是否为结构型变量

结构型变量的定义有两种方法

  • 直接赋值定义
  • 函数struct定义

注意:直接赋值时,需要指出结构中的属性名,并且用指针操作符“.”来连接结构型变量名与属性名。对属性直接赋值,会自动生成结构型变量,并使结构型变量包含所定义的属性。

第一种直接赋值定义
>> Test.a1 = 'avcdef';
>> Test.a2 = 6;
>> Test.ae = [1, 2, 3, 4, 5];
>> Test

运行结果:

上面代码表示定义了结构型变量,结构型变量有3个属性:属性a1,属性a2,属性a3。

第二种函数struct定义

使用函数struct来定义结构型变量,格式如下:

结构型变量名 = struct(元素名1,元素值1,元素名2,元素值2,......)
>> A = [1, 2, 3, 4, 5];
>> B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')
>> B

运行结果:

fieldnames函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')fieldnames(B)  % 调用处结构型变量B的所有元素名

运行结果:

getfield函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = getfield(B, 'a1')   % getfield函数把 B.a1 的值赋给 C

运行结果:

setfield函数的使用

setfield函数对结构型变量的属性值更新后的结果赋给新的结构型变量或在原有的结构型变量基础上添加新的属性。
注意:必须将函数结果赋予该结构型变量,否则将不会实现更改属性值的作用。

A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = setfield(B, 'a1', [6, 7, 8, 9])   % setfield函数对 B.a1 的值 进行更新,产生新的结构型变量赋给
C = setfield(C, 'b2', 10)   % setfield函数把 C.b2 进行更新,产生新的结构型变量赋给
C = setfield(C, 'b3', 100)   % setfield函数 在结构型变量 C中 添加新的属性

运行结果:

rmfield函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = rmfield(B, 'a1')   % 删除结构型变量的属性 a1 赋值给结构型变量 C,需要将结果赋予原变量 或 新的变量,才能更新原变量或新的变量拥有更新后的结果

运行结果:

isfield函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = isfield(B, 'a1')   % 判断是否是结构型变量的属性
C = isfield(B, 'aa')   % 判断是否是结构型变量的属性

运行结果:

isstruct函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = isstruct(A)  % 判断是否为结构型变量
C = isstruct(B)  % 判断是否为结构型变量

运行结果:

MATLAB 结构型变量相关推荐

  1. matlab基础之变量,matlab基础知识(4):特殊变量

    单元型变量 单元型变量是以单元为变量的数组,每个元素为单元,每个单元可以包含其他类型的数组,如实数矩阵,字符串,复数向量等.单元型变量通常由{}创建,数据通过数组下标来引用. 单元型变量的创建 1.赋 ...

  2. 设计模式(十五)享元模式(结构型)

    概述 当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题.例如在一个文本字符串中存在很多重复的字符,如果每一个字符都用一个单独的对象来表示,将会占用较多的内存空间,那 ...

  3. 设计模式(四)结构型模式

    前言 结构型设计模式,主要研究: 主要有哪些场景使用结构型设计模式: 每种场景应该使用何种设计模式: 以程序中的功能为核心,研究程序功能的组织结构.所以这一章,我们要把"功能结构" ...

  4. 设计模式2—结构型模式

    结构型模式用来处理类或者对象的组合,主要包含以下7种设计模式: 1. 代理模式(Proxy Pattern)就是为其他对象提供一种代理以控制对这个对象的访问. 2. 装饰者模式(Decorator P ...

  5. JavaScript 设计模式核⼼原理与应⽤实践 之 结构型设计模式

    JavaScript 设计模式核⼼原理与应⽤实践 之 结构型设计模式 结构型:装饰器模式--对象装上它,就像开了挂 装饰器模式,又名装饰者模式.它的定义是"在不改变原对象的基础上,通过对其进 ...

  6. 创建型模式、结构型模式和行为型模式_设计模式之创建型模式

    设计模式GOF23(Group of Four) 设计模式可分为三种类型: 创建型模式:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式. 结构型模式:适配器模式,桥接模式,装饰模式,组合模式, ...

  7. 如何用结构型信号量实现互斥和同步

    信号量方法的基本原则:两个或多个进程可以用信号的方法进行协作:进程可以在任何地方停下来以等待收到特定的信号:信号的实现是用一种称为信号量(Semaphore)的特殊变量. 信号量S就是一个特殊变量,包 ...

  8. 《设计模式详解》结构型模式 - 外观模式

    外观模式 5.5 外观模式 5.5.1 概述 5.5.2 结构 5.5.3 案例 5.5.4 使用场景 5.5.5 Tomcat 源码 完整的笔记目录:<设计模式详解>笔记目录,欢迎指点! ...

  9. 《设计模式详解》结构型模式 - 桥接模式

    桥接模式 5.4 桥接模式 5.4.1 概述 5.4.2 结构 5.4.3 案例 5.4.4 使用场景 完整的笔记目录:<设计模式详解>笔记目录,欢迎指点! 结构型模式描述如何将类或对象按 ...

最新文章

  1. vi/vim多行注释和取消注释
  2. sql intersect mysql_SQL INTERSECT子句
  3. 剪切粘贴时总是上次的内容_关于复制粘贴,还有一个鲜为人知的技巧!
  4. Pandas 秘籍·翻译完成
  5. 【Spring第十一篇】Transaction
  6. 【web前端开发】vs code插件推荐
  7. 软考·网络工程师认证(第八章)
  8. 发光二极管工作电流分析
  9. 使用LSTM神经网络+CTC loss识别freetype库生成的不定长验证码
  10. Win10,Win11家庭版开启远程桌面接入功能-有详细操作截屏
  11. 来自Google的围棋AlphaGo
  12. 支付宝二维码支付文档,找了好久,记在这里
  13. R_数据视觉化处理_初阶_02
  14. 王思聪数字时钟android安卓/ios苹果下载
  15. Air202入坑指南4---UART2(简单使用)
  16. 懒羊羊吃青草:懒羊羊是一只非常能吃的羊,它在青青草原上发现一块巨大的正方形草地,但灰太狼已经抢先一步在草地上布下了若干陷阱。正方形草地位于直角坐标系中...
  17. Java登陆3GQQ以及获取好友信息与好友聊天的简单实现
  18. 计算机操作系统u盘的安装方法,u盘操作系统_详细教您怎么把系统装进U盘
  19. 【知识图谱】Neo4j的基本使用及思知1.4亿三元组数据构建知识图谱
  20. android svga内存,iOS-SVGA动画渲染之内存优化

热门文章

  1. HDU1163 Eddy's digital Roots(解法二)【快速模幂+九余数定理】
  2. Qt之对话框设计——淡入淡出效果
  3. Graph Search就是语义搜索
  4. 架构语言ArchiMate -业务层(Business Layer)
  5. 2009年9月三级网络技术51CTO版考前压轴试题
  6. html标签的嵌套规则
  7. “斐波那契数列”的两种算法
  8. golang中的权限
  9. linux命令netstat
  10. 两个不同的文件相互引用全局变量