Matlab系列之数组的基本操作
本篇记录的是基本的数组操作,将包括数组元素的寻址、查和排序,本来是打算本矩阵的基本操作也介绍下,不过时间⽐较感觉不太够,就留到下⼀篇再进⾏记录了,先把上⼀篇和本篇的内容好好吸收吧,内容说多不多,但是含⾦量我感觉是够的。
~Show Time~
关于寻址,知多少?
都知道在数组中包含多个元素,因此对数组的单个元素或多个元素进⾏访问操作(就是我们想要拿某个特定位置或者特定的值来使⽤),需要对数组进⾏寻址操作,MATLAB中,数组寻址就是通过对数组的下表访问实现,不知道你们对之前记录的篇章中出现的“end”这个参数是否还有印象,代表数组的末尾。
我们更多的还是要记住,MATLAB在内存在以列的⽅向保持⼆维数组。对于⼀个m⾏n列的数组,分别使⽤i和j代表元素⾏列的索引,则⼀个⼆维数组的寻址可表⽰为A(i,j);代表A矩阵第中i⾏j列的这个特定元素,如果括号⾥只有⼀个数,这种就叫做单下标寻址,如A(k);代表的就是按列进⾏逐⼀计数,直到数值为k的那个元素,和(j-1)*m+i等价,等下可以⽤两个函数来进⾏转化,直接演⽰⼀下寻址的操作,你们就懂上⾯讲的意思了,关于代码就不做多讲述了,如果这种简单的代码还看不懂的话,就把⽂章多看看吧:
1、⼀维数组
2、⼆维数组寻址
查、排序那些事
看到查⼆字,是不是就会想到“Ctrl+F“,如果没有,当我没说。。。
MATLAB⾥提供了⼀个数组查函数,可以查数组中⾮零数组元素,并返回其在整个数组中的索引值,调⽤格式:
k=find(X)
k=find(X,n)
k=find(X,n,direction)
[row,col]=find(___)
[row,col,v]=find(___)
k表⽰⾮零元素的下标值,row和col分别表⽰⾏下标向量和列下标向量,和上⼀篇说的索引i和j是⼀个东西,只是为了⽅便理解,这边换row 和col来表⽰,v表⽰⾮零元素向量。
在实际应⽤中,通常使⽤多逻辑关系组合产⽣逻辑数字,判断数组元素是否满⾜某种⽐较关系,然后通过find函数返回符合⽐较关系的元素索引,从⽽实现对数组元素的查。
再说⼀下排序,其实这个之前也展⽰过了,惊不惊喜,意不意外?
如果没印象,那接着看,排序函数:sort;可对任意给定的数组进⾏排序,语法:
B=sort(A)
B=sort(A,dim)
matlab数组赋值B=sort(___,direction)
B=sort(___,Name,Value)
[B,I]=sort(___)
B为返回的排序后的数组,A为输⼊的待排序的数组,A为多数组时,⽤dim指定需要排序的维数,默认值是1;·假定有矩阵A。sort(A,1)对A的列元素进⾏排序。
·sort(A,2)对A的⾏元素进⾏排序。
direction代表排序的⽅向,即升序和降序,其取值为:ascend和descend,默认是升序的;
I⽤于存储排序后的下标数组;
Value的作⽤就是将缺失值放到指定位置,缺失值就是NaN,NaT之类的;
可以是三种取值:'auto'(默认),'first','last'
·'auto'-缺失的元素放在最后(对于升序排序)或放在最前⾯(对于降序排序)。
·'first'-缺失的元素放在最前⾯。
·'last'-缺失的元素放在最后。
对查和排序做演⽰:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论