matlab unique 的用功能
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab unique 的用功能相关的知识,希望对你有一定的参考价值。
格式b = unique (a) %取集合a的不重复元素构成的向量
b = unique (A,'rows') %返回A 值不同的行组成的矩阵
[b,i,j] = unique (…) %i体现b中元素在原向量(矩阵a)中的位置;j体现原向量(矩阵a)在b中的位置
例1-39
>> A=[1 1 2 2 4 4 6 4 6]
A =
1 1 2 2 4 4 6 4 6
>> [c,i,j]=unique(A)
c =
1 2 4 6
i =
2 4 8 9 %i体现b中元素在原向量(矩阵a)中的位置;
j =
1 1 2 2 3 3 4 3 4 %j体现原向量(矩阵a)在b中的位置
例
>> A=[1 2 2 4;1 1 4 6;1 1 4 6]
A =
1 2 2 4
1 1 4 6
1 1 4 6
>> [c,i,j]=unique(A,'rows')
c =
1 1 4 6
1 2 2 4
i =
3
1
j =
2 参考技术A 这个函数用来把一个数组中的相同元素去掉!本回答被提问者采纳 参考技术B 找出,相同元素
matlab问题,关于unique函数
举例:a=[5,2,3,4,1,1,2,3]; 使用unique函数之后得到的是[1,2,3,4,5]。如何可以使a=[5,2,3,4,1]? 即不改变原来矩阵元素的顺序,只删除后面的重复元素?
不用unique函数,用其它方法也可以,只要达到目的就行!请大侠们赐教!
>> a=[5,2,3,4,1,1,2,3];
>> unique(a,'stable')
ans =
5 2 3 4 1
参考技术A a=[5,2,3,4,1,1,2,3];% unique(A,'rows',setOrder)函数去除矩阵中重复行;
% A = [4 5 6;1 2 3;1 2 3];
% setOrder = 'sorted'是表示去掉重复值后排序后输出,为默认操作;
% setOrder = 'stable'是表示去掉重复值后按原来的顺序输出;
% 以上是对于矩阵的操作,对向量的操作只要将‘rows’去掉即可
即unique(a,'stable')
[b,m]=unique(a,'first');%矩阵m记录矩阵b中各元素在矩阵a中第一次出现的序号
c=a(sort(m))%对矩阵m作升序排列,取出矩阵a中对应元素即为所求本回答被提问者采纳 参考技术B 这样做 结合几个东西。我现在给你写的这个代码仅适用于2010b以后的matlab版本
[b, seqA, ~] = unique(a, 'first');
[~, reSeqA] = sort(seqA));
b = b(reSeqA);
b就是你想要的。
如果是2010b之前的版本,把其中的波浪线换成变量,之后再删除就可以了。 参考技术C unique函数——取集合的单值元素
用法:
b=unique(a),取集合a的不重复元素构成的向量。
b=unique(A,'rows'),返回A、B不同行元素组成的矩阵。
[b,i,j]=unique(。。。),i,j]体现b中元素在原向量(矩阵)中的位置。 参考技术D 这个好像不可以
以上是关于matlab unique 的用功能的主要内容,如果未能解决你的问题,请参考以下文章
matlab中为啥用unique数组去掉重复元素后,还有相同的元素
csharp 灵感来自Heather Floyd的文章(http://24days.in/umbraco-cms/2016/unique-sites-using-theming),但是我们的用例略有不