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)

B=sort(___,direction)

B=sort(___,Name,Value)

[B,I]=sort(___)

B为返回的排序后的数组,A为输入的待排序的数组,A为多数组时,用dim指定需要排序的维数,默认值是1;

·假定有矩阵Asort(A,1)A的列元素进行排序。

·sort(A,2)对A的行元素进行排序。

direction代表排序的方向,即升序和降序,其取值为:ascend和descend,默认是升序的;

I用于存储排序后的下标数组;

Value的作用就是将缺失值放到指定位置,缺失值就是NaN,NaT之类的;

可以是三种取值:'auto'(默认),'first','last'

·'auto'-缺失的元素放在最后(对于升序排序)或放在最前面(对于降序排序)。

·'first'-缺失的元素放在最前面。

·'last'-缺失的元素放在最后。

 

对查找和排序做演示:



更多精彩,等你发现!



 

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab数组操作主要包括数组寻址、数组元素的删除、数组查找和排序、数组运算以及数组操作函数。数组寻址是通过对数组下标的访问来实现的。在Matlab数组的寻址是通过对数组的行和列的索引来实现的。对于一个m行n列的数组,可以使用A(i,j)的方式进行访问,其i表示行的索引,j表示列的索引。如果采用单下标寻址,则数组元素的下标h可以表示为(j-1)*m+i的方式进行访问。 除了数组寻址,还可以通过将数组某些行、列的元素赋值为"[]"来实现数组元素的删除。需要注意的是,进行数组元素的删除操作时,索引值必须是完整的行或列,不能是数组内部的元素块或单个元素的索引。 此外,Matlab还提供了一系列数组操作函数,可以用来对数组进行查找、排序和运算等操作。这些函数可以帮助用户更方便地对数组进行处理和分析,提高编程效率。通过调用这些函数,用户可以实现对数组的各种操作,满足不同的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [(matlab编程基础)数组基本操作](https://blog.csdn.net/weixin_56691527/article/details/128430339)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值