利用暑假的时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。
素材来源“数学建模清风”
特此说明:本博客的内容只在于总结在使用matlab中的一些小技巧,并非教程,若想系统的学习MATLAB,也可以移步去链接中的视频,观看学习。也欢迎各位在留言区补充,纠错,讨论。
原素材和学习视频地址:MATLAB教程新手入门篇(上部分)(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili
数组运算#3——集合运算
1 unique函数
unique函数用来提取数组的唯一值。
(1)对于向量v来说 ,B=unique(v)会对向量v进行去重的操作,提取向量v的唯一值。且B与v的行列性一致,提取出的元素在B中会按照升序自动进行排列。
2 ismember函数
h = ismember(A,B)可以判断数组A中的元素是否在数组B中,返回值h是一个和A大小相同的逻辑数组,1表示A中的元素B中存在,0表示B中不存在
ismember函数不仅可以返回逻辑值,还可以返回索引值
[h,ia] = ismember(A,B)。h返回逻辑值,ia返回逻辑值对应的A中的最小索引值
如果B和A的列数一样,可以用函数ismember(A,B,'rows')将A的每一行视为一个整体,然后在B中查找。
3 intersect、union、setdiff和setxor函数
这四个函数分别用于计算两个数组之间的交集、并集、差集和对称差集。
这四个函数的用法一样,只要明白其中的意思,在MATLAB中的表达都类似。
下面以intersect函数为例:
A = intersec(B,C)会返回数组B和C中交叉的数据,但是不包括重复项,返回的A默认会排序。后面加'stable'可以按照B中出现的顺序返回A中的值
如果B和C的列数相同,在后面增加一个'rows',这时候intersect(B,C 'rows')会将B和C的每一行视为一个整体,然后返回B和C共同的行