博客
关于我
Matlab的集合运算[转]
阅读量:799 次
发布时间:2023-02-07

本文共 656 字,大约阅读时间需要 2 分钟。

今天遇到了一个向量操作的问题:已知向量a和向量b,其中向量b是向量a的子向量(即b的所有元素都来自a),要求在向量a中去掉向量b后剩下的元素,构成一个新的向量。经过一番搜索,发现这个问题实际上是在进行集合运算中的差集操作。

在MATLAB中,集合运算的函数相当丰富,可以用来解决这个问题。以下是一些常用的集合运算函数及其作用:

  • intersect:集合交集,返回两个集合中共同拥有的元素。
  • ismember:判断一个元素是否属于某个集合。
  • issorted/sort:判断集合是否排序,或者对集合进行排序。
  • setdiff:集合差集,返回第一个集合中不在第二个集合中的元素。
  • setxor:集合异或,返回既不在第一个集合中也不在第二个集合中的元素。
  • union:两个集合的并集。
  • unique:返回向量作为一个集合,去掉重复元素。

以下是一个具体的示例:

clear;a = 0;A = [1 2 3 4 5];B = [0 1 5 7 2];C = union(A, B); % 并集D = intersect(A, B); % 交集E = setdiff(A, B); % 差集 A - BF = setxor(A, B); % 异或集ismember(a, A); % 判断a是否属于Aissorted(A); % 判断A是否排序

通过上述代码可以清楚地看到,setdiff(A, B)函数可以直接用来求出向量a中去掉向量b后剩下的元素。如果需要更详细的操作,可以通过将向量转换为集合并使用集合运算来实现。

转载地址:http://hfyfk.baihongyu.com/

你可能感兴趣的文章
multi swiper bug solution
查看>>
MySQL Binlog 日志监听与 Spring 集成实战
查看>>
MySQL binlog三种模式
查看>>
multi-angle cosine and sines
查看>>
Mysql Can't connect to MySQL server
查看>>
mysql case when 乱码_Mysql CASE WHEN 用法
查看>>
Multicast1
查看>>
mysql client library_MySQL数据库之zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法...
查看>>
MySQL Cluster 7.0.36 发布
查看>>
Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
查看>>
MySQL Cluster与MGR集群实战
查看>>
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
查看>>
mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
查看>>
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>