matlab学习笔记11_1低维数组操作
一起来学matlab-matlab学习笔记11
11_1 低维数组操作repmat函数,cat函数,diag函数
觉得有用的话,欢迎一起讨论相互学习~Follow Me
参考书籍
《matlab 程序设计与综合应用》张德丰等著 感谢张老师的书籍,让我领略到matlab的便捷
《MATLAB技术大全》葛超等编著 感谢葛老师的书籍,让我领略到matlab的高效
数组是MATLAB进行计算和处理的核心内容之一,出于快速计算的需要,MATLAB总把数组看作存储和运算的基本单元,标量数据也被看作是1×1的数组。因此,数组的创建、寻址和操作就显得非常重要。MATLAB提供了各种数组创建的方法和操作方法,使得MATLAB的数值计算和操作更加灵活和方便数组创建和操作是MATLAB运算和操作的基础,针对不同维数的数组,MATLAB提供了各种不同的数据创建方法,甚至可以通过创建低维数组来得到高维数组
一维数组的创建
(1)直接输人法:此时,可以直接通过空格、逗号和分号来分隔数组元素,在数组中输人任意的元素,生成一维数组。
(2)步长生成法:x=a:inc:b,在使用这种方法创建一维数组时,a和b为一维向量数组的起始数值和终止数值,inc为数组的间隔步长;如果a和b为整数时,省略inc可以生成间隔为1的数列。根据a和b的大小不同,inc可以采用正数,也可以采用负数来生成一维向量数组
(3)等间距线性生成方法:x=linspace(a,b,n),这种方法采用函数在a和b之间的区间内得到n个线性采样数据点。
(4)等间距对数生成方法:x=logspace(a,b,n),采用这种方法时,在设定采样点总个数n的情况下,采样常用对数计算得到n个采样点数据值
一维数组的创建

一维数组访问
- 当创建数组后,对单个元素的访问,可以直接通过选择元素的索引来加以访问;如果访问数组内的一块数据,则可以通过冒号方式来进行访问;如果访问其中的部分数值,则可以通过构造访问序列或通过构造向量列表来加以访问。在访问数组元素的过程中,访问的索引数组必须是正整数,否则,系统将会提示一条警告信息。

一维数组可以是一个行向量,也可以是一列多行的列向量在定义的过程中,如果元素之间通过“;”分隔元素,那么生成的向量是列向量;通过空格或逗号分隔的元素则为行向量。当然列向量和行向量之间可以通过转置操作“'”来进行相互之间的转化过程。但需要注意的是,如果一维数组的元素是复数,那么经过转置操作“'”后,得到的是复数的共轭转置结果,而采用点一共轭转置操作时得到的转置数组,并不进行共轭操作

多维数组的创建
二维数组的创建
二维数组(也就是矩阵)可以通过以下几种方法来创建。
(1)直接输人二维数组的元素来创建,此时,二维数组的行和列可以通过一维数组的方式来进行创建,不同行之间的数据可以通过分号进行分隔,同一行中的元素可以通过逗号或空格来进行分隔
(2)通过MATLAB的ArrayEditor来输人二维数组。创建方法为,单击NewVariable创建图标,此时系统在工作空间的变量列表中出现新的矩阵变量,用户可以改变变量的名称。同时,在MATLAB的工作空间出现矩阵编辑器表格,可以直接输人矩阵的数据。
(3)对于大规模的数据,可以通过数据表格方式来输人,此时可以单击选择工作空间的ImportData图标,选中已经编写好的矩阵数据文件后,导人工作空间中。
(4)可以通过MATLAB所提供的其他函数来生成二维数组。

三维数组的创建
- 在创建二维数组的过程中,需要严格保证所生成矩阵的行和列的数目相同。如果两者的数目不同,那么系统将会出现错误提示。此外,在直接生成矩阵的过程中,可以通过按回车键来保证矩阵生成另一行元素
多维数组(n维数组),如在三维数组中存在行、列和页这样三维,即三维数组中的第三维成为页。在每一页中,存在行和列。在MATLAB中,可以创建更高维的n维数组。但实际上主要用到的还是三维数组。三维数组的创建方法有以下几种。
(1)直接创建方法。在生成过程中,可以选择使用MATLAB提供的一些内置函数来创建二维数组,如zeros、ones、rand、randn等
(2)通过直接索引的方法进行创建
(3)使用MATLAB的内置函数reshape和repmat将二维数组转换为三维数组。
(4)使用cat函数将低维数组转化为高维数组。repmat函数和cat函数
- repmat(A,m,n)函数将矩阵A重复摆放m*n次后摆放成为新的矩阵
cat(dim,A,B)按dim来联结A和B两个数组

数组的运算
- 数组的运算包括数组和标量之间的运算,以及数组和数组之间的运算。对于数组和标量之间的运算,是标量和数组的元素之间直接进行数学运算,比较简单。对于数组和数组之间的运算关系,尤其是对于乘除运算和乘方运算,如果采用点方式进行计算,表明是数组的元素之间的运算关系,而如果是直接进行乘、除、乘方运算,那么则是向量或矩阵之间的运算关系。两者的意义完全不同。
- 此外,还需要注意的是,对于向量的除法运算,左除()和右除(/)的意义不同。两者之间除数和被除数是不同的。

常用的标准数组

diag函数

低维数组的寻址和搜索
寻址


数组的排序
- MATLAB中使用sort函数进行排序,一维数组排序时,默认使用升序排列,如果需要降序排列,可以在sort函数的第二个参数使用descend来代替。

在二维数组进行排序时,sort函数只对数组的列进行排序,如果只对行进行排序,则需要为sort函数提供第二个参数2

数组搜索
MATLAB中,子数组搜索功能可以通过系统提供的find函数进行搜索,返回符合条件的数组的索引数值,对于二维数组可以返回两个下标数值。

最大值和最小值
如果搜索最大值和最小值那么可以使用max和min函数来进行搜索,如果搜索的是二维数组,那么这两个函数返回每一列的最大值和最小值

低维数组处理函数


在对角元素和上下三角矩阵时,所定义的第二个参数是以对角线k=0的起始对角线,向上三角方向移动时,k的数值增加,而向下三角方向移动时,k的数值减小。此外,对于非方阵的矩阵,对角线以过第一个元素的方阵的对角线为对角线的起始位置
kronecker乘法
对于kron函数执行的是kronecker的张量乘法运算,即将第一个参数数组的每一个元素和第二个参数数组相乘,形成一个分块矩阵,张量乘法不具有可交换性。

matlab学习笔记11_1低维数组操作的更多相关文章
- matlab学习笔记(一)单元数组
matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x) :取最大的整数 ceil(3.18)=4,ceil( ...
- C语言学习笔记 (005) - 二维数组作为函数参数传递剖析
前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...} / ...
- Python学习笔记_二维数组的查找判断
在进行数据处理的工作中,有时只是通过一维的list和有一个Key,一个value组成的字典,仍无法满足使用,比如,有三列.或四列,个数由不太多. 举一个现实应用场景:学号.姓名.手机号,可以再加元素 ...
- MATLAB学习笔记(四)——文件操作
首先,声明,如果学过C的话就可以不用看了,因为是一样的,只要注意一些系统变量的名字稍微变动了而已.都是基于ANSI C语言的标准库函数写的. (一)文件的打开与关闭 一.文件的打开 1.语法 fid= ...
- C语言学习笔记 (006) - 二维数组传参的三种表现形式
# include <stdio.h> # include <stdlib.h> # define M # define N int getdate(int (*sp)[M]) ...
- matlab学习笔记11_3高维数组操作 filp, shiftdim, size, permute, ipermute
一起来学matlab-matlab学习笔记11 11_3 高维数组处理和运算 filp, shiftdim, size, permute, ipermute 觉得有用的话,欢迎一起讨论相互学习~Fol ...
- matlab学习笔记11_2高维数组操作 squeeze,ind2sub, sub2ind
一起来学matlab-matlab学习笔记11 11_2 高维数组处理和运算 squeeze, ind2sub, sub2ind 觉得有用的话,欢迎一起讨论相互学习~Follow Me squeeze ...
- matlab学习笔记12单元数组和元胞数组 cell,celldisp,iscell,isa,deal,cellfun,num2cell,size
一起来学matlab-matlab学习笔记12 12_1 单元数组和元胞数组 cell array --cell,celldisp,iscell,isa,deal,cellfun,num2cell,s ...
- matlab学习笔记10_5 通用字符串操作和比较函数
一起来学matlab-matlab学习笔记10 10_5 通用字符串操作和比较函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张 ...
随机推荐
- Notepad++常用快捷键:
Ctrl-H 打开Find / Replace 对话框 Ctrl-D 复制当前行 Ctrl-L 删除当前行 Ctrl-T 上下行交换 F3 找下一个 Shift-F3 找上一个 Ctrl-Shift- ...
- Python并发编程-GIL全局解释器锁
Python并发编程-GIL全局解释器锁 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.GIL全局解释器锁概述 CPython 在解释器进程级别有一把锁,叫做GIL,即全局解释 ...
- MySQL/MariaDB数据库的主从级联复制
MySQL/MariaDB数据库的主从级联复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.主从复制类型概述 1>.主从复制 博主推荐阅读: https://ww ...
- Python入门篇-函数、参数及参数解构
Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...
- Python+Selenium+Appium对APP进行UI自动化测试
1. 安装Python3.7版本 pythonjava的JDK java -version javac nodejs node --versionappium 若nodejs安装完毕,使用npm安装a ...
- AbsInt — 确保代码安全的性能/资源分析工具套件
德国AbsInt公司是一家安全苛求软件研发.确认.验证和认证工具链的供应商,能够为客户提供完整的确保代码安全的性能分析工具套件以及软件分析.验证.确认和编译器技术相关咨询服务.AbsI ...
- 2018年第十届ACMICPC四川省大学程序设计竞赛
..拿金了 没给学校丢脸 A ....SB题啊 比赛的时候都没看 裸的一个bitset前缀和 先开一个1e4*1e4的二维bitset数组 初始第i个数组的值为1 << i (即B[i]= ...
- 使用mybatis框架实现带条件查询-多条件(传入实体类)
在实际的项目开发中,使用mybatis框架查询的时候,不可能是只有一个条件的,大部分情况下是有多个条件的,那么多个条件应该怎样传入参数: 思考: 需求:根据用户姓名(模糊查询),和用户角色对用户表进 ...
- Sql语句中Like嵌套用法
一般的Like用法: SELECT U_NAME FROM T_USER WHERE U_NAME LIKE '%A%' 但是,我此次like关键字后面的对应值是一个变量,需要用select语句来实现 ...
- 002——keil-Error: L6915E: Library reports error: __use_no_semihosting was requested解决
..\OBJ\KEY.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but _ttywr ...