以下内容来自于:https://blog.csdn.net/u010999396/article/details/54413615/

要在MALTAB中实现比较复杂的编程,就不能不用struct类型。而且在MATLAB中实现struct比C中更为方便。

1.结构数组的创建

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

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

与建立数值型数组一样,建立新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: []

******************************************************************************************

2.使用struct函数创建结构

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

struct的使用格式为:

s = sturct('field1',values1,'field2',values2,…);

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

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

PointSet= struct('x',0,'y',0,'h',0,'ins',0);

点击PointSet包含有4个字段。就是说PointSet有4个属性。

x,y,h,和ins

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的结构数组。

matlab向结构体中的数组自动赋值_matlab之结构体数组struct相关推荐

  1. C++ 不能通过给字符数组名赋值的方法给字符数组赋值

    已知有数组定义:char a[3][4]; 形如:"a[0] = "AAA";"的赋值语句是错误的,因为在C++中,无法通过给字符数组名赋值来实现给字符数组每一 ...

  2. 结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

    结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势:(1).不需要初始化,数组名直接就是所在的偏移:(2).不占任何空间,指针需要占 ...

  3. C/C++ 学习笔记:结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

    结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势:(1).不需要初始化,数组名直接就是所在的偏移:(2).不占任何空间,指针需要占 ...

  4. matlab向结构体中的数组自动赋值_数组 – 在Matlab结构体数组的每个元素中更新一个字段...

    只是一个说明,交易是不必要的: [arr.val] = newVals{:}; % achieves the same as deal(newVals{:}) 唯一的其他方式我知道如何做(没有foor ...

  5. JAVA成员变量为什么不能在类体中先定义后赋值

    1 package dx; 2 3 public class Test1 { 4 5 int a111;//定义成员变量(全局变量) 6 7 8 9 // a = 1;//此处若给变量赋值,会报错,J ...

  6. c 语言往字符数组里面赋值,关于c 语言字符数组的赋值

    首先,在语法上,三句都是正确的,但按照C语言中字符串的用法,第二句是错误的,可能导致无法预料的错误结果. 在C语言中,我们一般说的字符串,其实就是字符数组(区别于C++,Java等语言),而用类似ch ...

  7. c语言字符串二维数组如何赋值,C语言二维数组字符串的赋值

    今天用到了二维数组作为参数传递的程序,通过网上搜索,针对自己遇到的问题做个整理. 1.在被调用函数的形参数组定义可以省略第一维的大小,第二维不可省略,如下: void fun(int a[5][20] ...

  8. C语言学习笔记---结构体中的字符数组和字符指针

      在结构体中可以使用字符数组来存储字符串,也可以使用字符指针来存储字符串.比如: struct str{char s1[5];char s2[5];};struct str str1= {" ...

  9. C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例

    C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例 目录 一.简单介绍 二.结构体定义和使用 三. ...

最新文章

  1. 计算 webView 显示内容后实际高度
  2. Facebook打算与Google的人工智能一较高下吗?
  3. CCNP-19 IS-IS试验2(BSCI)
  4. python简单入门代码-Python入门 | IDLE的介绍和使用方法
  5. GPT v.s. 中国象棋:写过文章解过题,要不再来下盘棋?
  6. 腾讯视频怎么设置下载视频位置
  7. 关于安装TortoiseSVN.msi 报错2203错误
  8. sleep()和wait()的区别-转
  9. php中连接网页头尾部,网页共用头部和尾部的部分方法
  10. 重载、类型转换与运算符
  11. 世界3大IT服务品牌之一塔塔咨询服务公司发布新品牌宣言
  12. (ensp)华为USG6000v防火墙双机热备份的配置
  13. 计算机无法与网络同步,电脑时间无法同步怎么办?
  14. VisualBasic程序设计第二章的学习与自测
  15. excel基础知识大全_冷轧基础知识学习(八)
  16. charles抓包(别名:茶壶)
  17. javascript实现汉诺塔
  18. 扫一扫 解析二维码 的多种解决方案
  19. 2014年10月30日 1、完成AHC合并部分,调试通过代码
  20. 指针型函数实现插入字符

热门文章

  1. java水仙花数问题详细思路分析以及求解
  2. Photoshop - 无法完成请求,因为 JPEG 标志符段长度太短(该文件可能被截断或不完整)怎么办?
  3. SQL注入基础知识总结
  4. 纸鸢|逛一逛物联网的大集|国际物联网展会布置
  5. 传说中的leica相机和镜头
  6. 什么软件测试手机亮度,手机屏幕坏点检测方法有哪些【详细介绍】
  7. js 文件大小单位换算
  8. 联想小娜怎么开启_联想Yoga 730内置新语音助手Alexa 微软小娜怎么办
  9. excel中快速填充下拉方法
  10. Vscode创建vue项目的详细步骤