MATLAB学习笔记二——元胞数组、结构体

这篇具有很好参考价值的文章主要介绍了MATLAB学习笔记二——元胞数组、结构体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

元胞数组是一种数组的数据类型,废话不多说,看代码

clc
clear all
A = cell(1,6) %创建一个一行六列的元胞数组,其中包含1x6个0行0列矩阵
A{2} = eye(3) 
%eye(N),返回N*N大小的单位矩阵
%这里就是将A数组第2个矩阵赋值为3x3的单位矩阵(方阵)
%注意A数组里矩阵的位置{}从1开头
A{5}=magic(4) %将A数组第5个矩阵赋值为4x4的4阶幻方矩阵
B=A{5} %用B矩阵表示A数组的第5个矩阵是什么东西

让我们逐一分析

  • 创建元胞数组
A = cell(1,6) %创建一个一行六列的元胞数组,其中包含1x6个0行0列矩阵

命令行窗口可得结果为
A =

1×6 cell 数组

{0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double}

  • 数组内矩阵赋值,eye函数用法
A{2} = eye(3) 
%eye(N),返回N*N大小的单位矩阵
%这里就是将A数组第2个矩阵赋值为3x3的单位矩阵(方阵)
%注意A数组里矩阵的位置{}从1开头

结果为
A =

1×6 cell 数组

{0×0 double} {3×3 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double}

  • 数组内矩阵赋值,magic函数用法及表达
A{5}=magic(4) %将A数组第5个矩阵赋值为4x4的4阶幻方矩阵
B=A{5} %用B矩阵表示A数组的第5个矩阵是什么东西

何为幻方(magic)?如图所示
MATLAB学习笔记二——元胞数组、结构体

结果为
A =

1×6 cell 数组
{0×0 double} {3×3 double} {0×0 double} {0×0 double} {4×4 double} {0×0 double}

B =

16     2     3    13
 5    11    10     8
 9     7     6    12
 4    14    15     1

不难看出,主对角线、副对角线、每行、每列加起来都等于34.

结构体

  • 结构体创建格式:
s = struct(field,value)

创建具有指定字段和值的结构体数组。

  • 代码分析

看一段代码

clc
clear all
books = struct('name',{{'laoba','laoma'}},'price',[20 50])
%创建一个结构体,包含name(书名),分别叫laoba、laoma;包含price(价格),
%分别是20,50元,也是一个1x2的矩阵。这个结构体赋值给books
%语法如此
books.name %选择books.name这个属性,name字段包含1行2列的元胞数组,数组中
%包含{'laoba'},{'laoma'}的子元胞数组
books.name(1) %取出name中的第一个1行1列(子)元胞数组,也就是{'laoba'}
books.name{1} %取出一个元胞数组name中的第一个值,也就是'laoba'
%总的来说,你就应该记住这两种取出方式分别取出的是什么。

小括号取出来的是cell数组。
大括号取出来的是字符串。

结果为

books = 

  包含以下字段的 struct:

     name: {'laoba'  'laoma'}
    price: [20 50]

>> books.name

ans =

  1×2 cell 数组

    {'laoba'}    {'laoma'}

>> books.name(1)

ans =

  1×1 cell 数组

    {'laoba'}     注意这是数组
ans =

    'laoba'   注意这是字符串。。。。

我觉得的吧这个结构体真是复杂,比如laoba、laoma那块为什么是两个大括号呢?

clc
clear all
books = struct('name',{'laoba','laoma'},'price',[20 50])
%创建一个结构体,包含name(书名),分别叫laoba、laoma;包含price(价格),
%分别是20,50元,也是一个1x2的矩阵。这个结构体赋值给books
%语法如此
books.name %选择books.name这个属性,name字段包含1行2列的元胞数组,数组中
%包含{'laoba'},{'laoma'}的子元胞数组
books.name(1) %取出name中的第一个1行1列(子)元胞数组,也就是{'laoba'}
books.name{1} %取出一个元胞数组name中的第一个值,也就是'laoba'
%总的来说,你就应该记住这两种取出方式分别取出的是什么。

如果我去掉的话,会有以下结果文章来源地址https://www.toymoban.com/news/detail-497554.html

books = 

  包含以下字段的 1×2 struct 数组:

    name
    price


ans =

    'laoba'


ans =

    'laoma'

需要花括号或点索引表达式中的一个输出,但结果有 2 个。

出错 test (line 9)
books.name(1) %取出name中的第一个1行1列(子)元胞数组,也就是{'laoba'}
 
>> 

到了这里,关于MATLAB学习笔记二——元胞数组、结构体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数模笔记14-元胞自动机

    元胞自动机理论 元胞自动机(Cellular Automata,CA)是一种时空离散的局部动力学模型,是研究复杂系统的一种典型方法,特别适合用于空间复杂系统的时空动态模拟研究。 元胞自动机不是由严格定义的物理方程或函数确定,而是用一系列模型构造的 规则 构成。凡是满足这些

    2024年02月09日
    浏览(38)
  • Matlab笔记-数组

            结构体的定义即为C语言中结构体的初始化,其引用成员(在Matlab中为field,字段的意思)和C语言相同。 1、直接赋值         需要注意的是,进行赋值时需要对结构体做标量,即做标记,要不然就会出现下面这种情况,出现报错 1、fieldnames:展示结构体所有字段名

    2024年02月09日
    浏览(36)
  • C语言算法笔记1:结构体、结构体数组实战讲解

    今日开始为电赛复习一些必备的算法知识,本文回顾复习结构体的概念以及一些基本操作,每个知识点都有代码实践演示,可以复制测试查看! 目录 前言——往日的困惑: 一、结构体基础知识与用途: C语言结构体是一种自定义数据类型: 结构体可以包含不同的数据类型:

    2024年02月12日
    浏览(36)
  • Matlab基础语法学习(2)矩阵和数组

    矩阵和数组 MATLAB 是“矩阵实验室”的缩写。虽然其他编程语言主要一次处理一个数字,但MATLAB®主要 设计用于整个矩阵和数组。 所有 MATLAB 变量都是多维 数组 ,无论数据类型如何。 矩阵 是通常用于线性代数的二维数组。 一、阵列创建 若要在一行中创建具有四个元素的数

    2024年01月19日
    浏览(41)
  • 【数据结构】24王道考研笔记——栈、队列和数组

    基本概念 栈是 只允许在一端进行插入或删除操作 的线性表。 栈顶:线性表允许进行插入删除的那一端 栈底:固定的,不允许进行插入删除的那一端 空栈:不含任何元素的空表 特点: 先进后出 基本操作: 常考题型: [外链图片转存失败,源站可能有防盗链机制,建议将图片

    2024年02月09日
    浏览(68)
  • 椋鸟C语言笔记#31:结构体(联合体)嵌套、柔性数组

    萌新的学习笔记,写错了恳请斧正。 目录 结构体(联合体)嵌套 嵌套时内嵌结构体(联合体)不创建变量(匿名) 嵌套时内嵌结构体(联合体)创建变量(非匿名) 嵌套初始化 柔性数组 柔性数组的使用 结构体(联合体)嵌套 结构体、联合体可以嵌套,也就是说结构体(

    2024年02月02日
    浏览(44)
  • 数组(个人学习笔记黑马学习)

      案例描述: 在一个数组中记录了五只小猪的体重 如: int arr[5] =(300,350,200,400,250): 找出并打印最重的小猪体重。   案例描述: 请声明一个5个元素的数组,并且将元素逆置(如原数组元素为: 1,3,2,5,4;逆置后输出结果为:4,5,2,3,1   作用: 最常用的排序算法,对数组内元素进行排序  

    2024年02月10日
    浏览(44)
  • 后缀数组学习笔记

    后缀数组就是主要处理字符串后缀问题的,它的实现算法主要有两种:倍增法和 DC3,复杂度分别是 (O(nlog n)) 和 (O(n)) 。这里由于 DC3 代码答辩且难以理解,我就只写了倍增法的实现。 P3809 【模板】后缀排序 读入一个长度为 (n) 的由大小写英文字母或数字组成的字符串,

    2024年02月16日
    浏览(34)
  • 【学习笔记】树状数组

    树状数组是一种数据结构,普通树状数组维护的信息及运算要满足结合律且可差分。 树状数组是用长度为 (n) 的数组存储的。我们假设这个数组为 (n) ,令 lowbit(i)=i(-i) ,则 (c_i) 保存的是向前 lowbit(i) 长度的 (a) 数组区间和。 单点加:从 (i) 开始,修改所有包含 (a_i)

    2024年02月15日
    浏览(39)
  • C语言学习笔记:数组

    ✨博文作者:烟雨孤舟 💖 喜欢的可以 点赞 收藏 关注哦~~ ✍️ 作者简介: 一个热爱大数据的学习者 ✍️ 笔记简介:作为大数据爱好者,以下是个人总结的学习笔记,如有错误,请多多指教! 目录 ​​​​​​​ 简介 数组声明 数组初始化 访问数组元素 多维数组 二维数组

    2024年02月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包