千家信息网

MATLAB中tabulate和intersect函数怎么用

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要为大家展示了"MATLAB中tabulate和intersect函数怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"MATLAB中tabu
千家信息网最后更新 2024年11月20日MATLAB中tabulate和intersect函数怎么用

这篇文章主要为大家展示了"MATLAB中tabulate和intersect函数怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"MATLAB中tabulate和intersect函数怎么用"这篇文章吧。

统计一个向量中各元素出现的次数及频率

1. 函数:tabulate

2. 用法:table= tabulate(x)

其中x是一个向量(行,列都行),返回的table有3列,第一列是向量x中的所有不重复的元素,第二列是第一列中各元素出现的次数,第三列是第一列中各元素出现的频率。

3. 例

>> x = [1 2 3 1 5 6 3 2 4 2 3 1];
>> table = tabulate(x)

table =

1 3 25
2 3 25
3 3 25
4 1 8.3333
5 1 8.3333
6 1 8.3333

>>

另外:

还有两个自带的函数叫histcount / histcounts2可以用来统计个数,不过它是用来统计落在某区间的数值的个数,这里就不具体介绍了。

如何判断一个集合是另一个集合的子集

这我没找到一个现成的自带的函数,不过可以用一个自带的函数,再加一个if语句来实现。

1. 相关函数:intersect

2. 用法:C = intersect(A, B)

其中A和B是两个向量,返回的C是A和B的交集。

3. 例

>> intersect([1 2 3], [1 3 5 6 9])

ans =

1 3

>> intersect([2 3 6], [1 3 5 6 9 2])

ans =

2 3 6

>>

如果我想判断A是否为B的子集,那么A的元素个数肯定是要小于等于B的元素个数,如果C的元素个数等于A的元素的个数,那么A肯定就是B的子集了。(A和B的交集的元素个数和A的个数一样,A就是B的子集)

% 想判断A是否为B的子集
% 假设经过前面的处理,A的元素一定比B少,现在就像知道A中的元素是否全在B中

co = intersect(A, B); % 公共部分
if length(co)==length(A)
disp('A 是 B 的子集');
else
disp('A 不是 B 的子集');
end

另外:

其实还有个函数也能用:C=ismember(A, B),它可以接受两个向量A,B作为参数,判断A向量中的各元素是否在B向量中,最后返回的C是一个逻辑向量,C的长度等于A的长度。可以对这个返回值C求和,判断这个和是否等于A向量元素的个数,如果相等,那么A向量就是B向量的子集。就不具体介绍了

以上是"MATLAB中tabulate和intersect函数怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0