这篇文章主要为大家展示了“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函数怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。