Matlab笔记-数组

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

一、结构数组的基本使用  

        结构体的定义即为C语言中结构体的初始化,其引用成员(在Matlab中为field,字段的意思)和C语言相同。

1、直接赋值

>> student(1).name='Silen';
student(1).id=1234;
student(1).grade=[1 2 3;4 5 6;7 8 9];
student(1).grade(2,2)     %输出成绩5

ans =

     5

        需要注意的是,进行赋值时需要对结构体做标量,即做标记,要不然就会出现下面这种情况,出现报错

>> student.grade=[2 3 4;5 6 7;8 9 0];
此赋值需要标量结构体。

2、用struct函数定义

>> A=[1 2 3 4];
>> B=struct('id',12324,'grade',A)

B = 

  包含以下字段的 struct:

       id: 12324
    grade: [1 2 3 4]

二、相关结构数组函数

1、fieldnames:展示结构体所有字段名

>> fieldnames(student)

ans =

  5×1 cell 数组

    {'you'  }
    {'id'   }
    {'gread'}
    {'name' }
    {'grade'}

2、getfield:得到结构体的相应字段

>> c=getfield(student,'id');
>> c

c =

        1234

3、isfield:判断字段是否是结构体内的字段

>> c=isfield(student,'ok')

c =

  logical

   0

>> c=isfield(student,'id')

c =

  logical

   1

4、isstruct:判断是否是结构体类型

>> A=struct('id',4567,'grade',[1 2 3;4 5 6;7 8 9]);
>> B=[1 2 3 4];
>> C=isstruct(A)

C =

  logical

   1

5、orderfields:对结构体的fields按字母顺序排序

>> A=struct('c',1234,'a',34,'b',56);
>> orderfields(A)

ans = 

  包含以下字段的 struct:

    a: 34
    b: 56
    c: 1234

6、rmfield:remove结构体中的field

>> rmfield(A,'a')

ans = 

  包含以下字段的 struct:

    c: 1234
    b: 56

7、setfield:用于更新结构体字段

>> setfield(A,'a',78)

ans = 

  包含以下字段的 struct:

    c: 1234
    a: 78
    b: 56

三、嵌套结构数组

>> A=struct('a',1234,'b',2345,'B',struct('c',5678,'d',6789))

A = 

  包含以下字段的 struct:

    a: 1234
    b: 2345
    B: [1×1 struct]

>> A.B.d

ans =

        6789

四、元胞数组

        元胞数组即是将成员数据按矩阵形式排列,数据部分用{}或者位置部分用{}都可

>> A(1,1)={[1 2 3;4 5 6]};
>> A(1,2)={'hello'};
>> A(2,1)={'world'};
>> A(2,2)={[2 3 4;5 6 7]};
>> A

A =

  2×2 cell 数组

    {2×3 double}    {'hello'   }
    {'world'   }    {2×3 double}

        那么如何查看cell arry中的数据呢

>> A(1,1)

ans =

  1×1 cell 数组

    {2×3 double}

>> A{1,1}

ans =

     1     2     3
     4     5     6

        可以看到,使用(1,1)只能看到数据类型,而用{1,1}才能展开数据

五、矩阵转换成元胞数组

1、使用num2cell函数

>> a=magic(3); 
>> b=num2cell(a)

b =

  3×3 cell 数组

    {[8]}    {[1]}    {[6]}
    {[3]}    {[5]}    {[7]}
    {[4]}    {[9]}    {[2]}

magic(n)函数的作用是生成一个n*n的矩阵,矩阵元素是由整数1到n^2组成的并且任何行任何列的和都相等,阶数n必须是大于等于3的标量

2、使用mat2cell函数

C = mat2cell(A,dim1Dist,...,dimNDist)

        mat3cell可将原矩阵沿维度划分为各个子数组,并共同组成一个元胞数组

>> c=mat2cell(a,[1 1 1],[1 2])

c =

  3×2 cell 数组

    {[8]}    {[1 6]}
    {[3]}    {[5 7]}
    {[4]}    {[9 2]}

六、多维数组

        多维数组是在row和column的基础上再加维度

Matlab笔记-数组

 1、使用cat(n,A,B)函数

>> A=[1 2;3 4];
B=[5 6;7 8];
C=cat(1,A,B);
D=cat(2,A,B);
E=cat(3,A,B);
>> disp(C);
     1     2
     3     4
     5     6
     7     8

>> disp(D)
     1     2     5     6
     3     4     7     8

>> disp(E)

(:,:,1) =

     1     2
     3     4


(:,:,2) =

     5     6
     7     8

2、使用reshape(D,n,n,n)函数

>> reshape(D,2,2,2)

ans(:,:,1) =

     1     2
     3     4


ans(:,:,2) =

     5     6
     7     8

        对于reshape函数再提一句,它对矩阵做reshape的顺序是从row到column

>> F=[1 2 3;4 5 6];
>> f1=reshape(F,3,2)

f1 =

     1     5
     4     3
     2     6

Matlab笔记-数组文章来源地址https://www.toymoban.com/news/detail-490998.html

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

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

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

相关文章

  • 【MATLAB】 01 基本操作与数组输入

    认识 MATLAB 操作界面 可以通过 Layout 选择需要显示的窗口及布局 使用 MATLAB 编程有两种方法 命令行 (命令窗口) 脚本 ( .m 文件) 运算符 + , - , * , / , ^ 计算的结果 以 ans 显示 优先级 同一优先级从左到右 优先级为 Parenthesis ( () ) Power ( ^ ) Multiplication and division ( * , / ) Addition and sub

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

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

    2024年02月09日
    浏览(39)
  • 第5章:5.4.2 字符串数组的基本操作(MATLAB入门课程)

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 在文本数据预处理阶段,我们通常需要对字符串数组进行基本的操作。我们将从字符串数组的引用开始,逐

    2024年01月16日
    浏览(44)
  • 【数据结构】串的基本定义及操作

    🌈积薪高于山,焉用先后别 🌈   🌟 正式开始学习数据结构啦~此专栏作为学习过程中的记录 🌟 概念熟记: 串 是由 0个或多个字符 组成的有限的序列,记作 S = ′ a 1 a 2 . . . a n ′ S=\\\'a_1a_2...a_n\\\' S = ′ a 1 ​ a 2 ​ ... a n ′ ​ ,其中,当 n = 0 n=0 n = 0 时表示空串 串 中任意多个

    2024年02月06日
    浏览(56)
  • Linux shell编程学习笔记15:定义数组、获取数组元素值和长度

     * 20231103 增加了 五、数组拼接或合并 数组是一种常见的数据结构。跟大多数编程语言一样,大多数Linux shell脚本支持数组,但对数组的支持程度各不相同,比如数组的维度,是支持一维数组还是多维数组?再如,数组元素的下标是从 0 开始还是从1开始?则因shell而异,下面

    2024年02月06日
    浏览(69)
  • Matlab(结构化程式和自定义函数)

    目录 1.脚本编辑器  2.脚本流  2.1 控制流 2.2 关系(逻辑)操作符 3.脚本与函数  Matlab的命名规则:  常用功能:  智能缩进:        在写代码的时候,有的时候代码看起来并不是那么美观(可读性不好),所以Matlab中快捷键 Ctrl+I 可以帮助我们解决这个问题        脚本是

    2024年02月10日
    浏览(47)
  • 【第43天】sort 的复杂运用 | 对二维数组与结构体实现自定义排序

    本文已收录于专栏 🌸《Java入门一百练》🌸

    2024年01月17日
    浏览(39)
  • 【玩转408数据结构】线性表——定义和基本操作

            线性表是算法题命题的重点,该类题目实现相对容易且代码量不高,但需要最优的性能(也就是其时间复杂度以及空间复杂度最优),这样才可以获得满分。所以在考研复习中,我们需要掌握线性表的基本操作,在平时多进行代码练习。当然在考场上,我们并不一

    2024年02月19日
    浏览(48)
  • 数据结构——图的基本定义以及图的存储结构,邻接矩阵,邻接表

    目录 图的定义和术语 图的存储结构 顺序存储结构—邻接矩阵 链式存储结构 邻接表 邻接多重表 十字链表 图的遍历 图的连通性问题 有向无环图及其应用 最短路径 图的定义:图是一种非线性的复杂的数据结构,图中的数据元素的关系是多对多的关系 ,在图中我们常常把数

    2024年02月04日
    浏览(58)
  • 【数据结构与算法】1、学习动态数组数据结构(基本模拟实现 Java 的 ArrayList 实现增删改查)

    🍃 数据结构是 计算机 存储 、 组织 数据的方式 🎉 线性 结构 线性表(数组、链表、栈、队列、哈希表) 🎉 树形 结构 二叉树 AVL 树 红黑树 B 树 堆 Trie 哈夫曼树 并查集 🎉 图形 结构 邻接矩阵 邻接表 🎁 线性表是具有 n 个 相同类型元素 的有限 序列 (n = 0) a1 是首节点

    2024年02月10日
    浏览(78)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包