unique-----返回唯一值並排序------------matlab
unique
Find unique elements of vector
Syntax
b = unique(A)
b = unique(A, 'rows')
[b, m, n] = unique(...)
[b, m, n] = unique(..., occurrence)
Description
b = unique(A) returns the same values as in A but with no repetitions. A can be a numeric or character array or a cell array of strings. If A is a vector or an array, b is a vector of unique values from A. If A is a cell array of strings, b is a cell vector of unique strings from A. The resulting vector b is sorted in ascending order and its elements are of the same class as A.
b = unique(A, 'rows') returns the unique rows of A.
[b, m, n] = unique(...) also returns index vectors m and n such that b = A(m) and A = b(n). Each element of m is the greatest subscript such that b = A(m). For row combinations, b = A(m,:) and A = b(n,:).
[b, m, n] = unique(..., occurrence), where occurrence can be
*
'first', which returns the vector m to index the first occurrence of each unique value in A, or
*
'last', which returns the vector m to index the last occurrence.
If you do not specify occurrence, it defaults to 'last'.
You can specify 'rows' in the same command as 'first' or 'last'. The order of appearance in the argument list is not important.
Examples
A = [1 1 5 6 2 3 3 9 8 6 2 4]
A =
1 1 5 6 2 3 3 9 8 6 2 4
Get a sorted vector of unique elements of A. Also get indices of the first elements in A that make up vector b, and the first elements in b that make up vector A:
[b1, m1, n1] = unique(A, 'first')
b1 =
1 2 3 4 5 6 8 9
m1 =
1 5 6 12 3 4 9 8
n1 =
1 1 5 6 2 3 3 8 7 6 2 4
Verify that b1 = A(m1) and A = b1(n1):
all(b1 == A(m1)) && all(A == b1(n1))
ans =
1
Get a sorted vector of unique elements of A. Also get indices of the last elements in A that make up vector b, and the last elements in b that make up vector A:
[b2, m2, n2] = unique(A, 'last')
b2 =
1 2 3 4 5 6 8 9
m2 =
2 11 7 12 3 10 9 8
n2 =
1 1 5 6 2 3 3 8 7 6 2 4
Verify that b2 = A(m2) and A = b2(n2):
all(b2 == A(m2)) && all(A == b2(n2))
ans =
1
Because NaNs are not equal to each other, unique treats them as unique elements.
unique([1 1 NaN NaN])
ans =
1 NaN NaN
相關推薦
unique-----返回唯一值並排序------------matlab
unique Find unique elements of vector Syntax b = unique(A) b = unique(A, 'rows') [b, m, n] = unique(...) [b, m, n] = unique(..., occurre
MATLAB 的unique函數——數組矩陣的唯一值
nop work ima leg 指定 數組矩陣 psi cti 返回 MATLAB 的unique函數——求數組矩陣的唯一值 相關MathWork文檔見此:unique數組中的唯一值 1、C = unique(A) 返回與 A 中相同的數據,但是不包含重復
c++對vector進行排序,並返回索引值
測試程式碼:(對向量進行排序,取一定範圍內的數值) vector<int> vec = {5,31,9,11,8,21,9,7,4};  
Matlab中幾種關於如何求矩陣最大值並返回其行列號的方法
幾種關於如何求矩陣最大值並返回其行列號的方法:第一種:clear;clc;A=[0 17 50;-12 40 3;5 -10 2;30 4 3][C,I]=max(A(:))[m,n]=ind2sub(size(A),I)第二種:clear;clc;A=[0 17 50;-
oracle 調用包體的函數並返回return值
datarow ret .com rect tex ring catch param finally /// <summary> /// 執行數據庫包體操作,返回結果 /// </summary> /// <param name="cmdTe
django通過json格式獲取複選框值並處理,後臺返回json字串給前端
一、django通過json格式獲取複選框值並處理 1,前端程式碼 <div class="col-md-10 text-left"> {% for column in article_columns %} <label clas
【java】各種Map中keySet()返回值的排序問題
上回說到,由於對資料進行處理的時候是按照亂序一行一行的處理,導致並行執行緒各自佔據了一部分資料,誰也不肯釋放,從而發生死鎖。 為什麼會亂序,是因為取得資料行主鍵的時候,使用了HashMap.keySet()方法,而這個方法返回的Set結果,裡面的資料是亂序排放的。 Jav
遞迴搜尋樹形結構並返回搜尋值
這裡要處理的資料,是一組樹型結構。如下 let options= [ {"value":1,"label":"三甲","children":[ {"value":68,"label":"上海三甲","children":[{"value":
python尋找向量中最大值、最小值並返回其所在位置的方法
a = np.array([1, 2, 3, 4, 5, 6]) # random vector 1、a = list(a) # 第一步變為list陣列,使其具有index屬性 2、b = a.index(max(a)) # b中儲存了最大值達位置座標 p
python尋找list中最大值、最小值並返回其所在位置
c = [-10,-5,0,5,3,10,15,-20,25] print(min(c)) print(max(c)) print(c.index(min(c))) print(c.index(max(c)))
ASP.NET前臺向後臺傳引數並返回Json值
<script src="Scripts/jquery-1.6.2.min.js"></script> <script type="text/javascript"> $(function () { var startDate
DISTINCT 返回唯一不同的值,去除重複值
DISTINCT 用於返回唯一不同的值語法:SELECT DISTINCT 列名稱 FROM 表名稱DISTINCT用於多列 表A:SQL:select distinct name, id from A執行後結果如下:實際上是根據name和id兩個欄位來去重的,這種方式Acc
JNI開發:Java呼叫C/C++函式傳遞Array引數並返回Array值
此篇Java呼叫C/C++函式來實現給int陣列[12,45,67]的每個元素加17; java呼叫: int array[] = { 12, 45, 67 }; array = jniTools.intA
Datatable 篩選欄位並使用distinct篩選唯一值
我想實現如下功能:開啟一個datatable之後,它有9個欄位,我希望篩選其中4個欄位:ABCD,其中有一個欄位A有重複值,我需要用distinct去剔除重複值, 而其他欄位的值是可以重複的。 我在datatable的函式裡找不到相關函
從鍵盤輸入一個字串,將此字串按字元的ASCII碼值從小到大排序,並顯示排序後的字串。
#include <stdio.h> #include <string.h> int main(){ char a[100]; int n,l,j,k,i,tmp; while(scanf("%s",a)!=EOF){ n = strlen(
redis列表型別list如何一次返回多個值並刪除這些值
redis的列表型別list是一個常用的資料型別,但是這個型別並不支援一次性返回多個值並刪除這些已經返回的值。 其實我們可以通過redis的事務,來完成這個一次性返回多個值並刪除這些已經返回的值的需求。 redis中的事務就是一組命令的集合,這些命令要麼全部執行,要麼全都
前端兩種跨域傳值並獲取返回值的方法
1,JSONP傳值 缺點:必須使用get方式傳值,資料量大小受瀏覽器影響 優點:B伺服器端不需要更改程式碼 示例 $.ajax({url:"http://127.0.0.1:9095/web/test", type: 'GET',
陣列排序,返回陣列值在原陣列中的下標(序號)
功能:對輸入的陣列進行排序,返回的是,從小到大陣列對應於原陣列的下標(序號) 。比如 1 7 3 2 9 返回:0 3 2 1 4 思想:在函式中動態開闢一個數組,用於儲存下標。初始化的時候為0-(n-1)。陣列值在排序的過程中,下標值也跟著排序。最後返回指向下標陣
4比較三個數的大小輸出最大的值並從小到大排序輸出
public static void main(String[] args) { System.out.println("請輸入三個數"); Scanner scanner=new Scanner(System.in); int a=scan
MATLAB:讀取文字資料並排序
clear all; %清除所有變數(包括全域性變數) clc; %清屏 a=load('D:\vs2012\projects\train_opencv_main\train_cascade\test\wdata\125.txt'); %a=load('5