find(neighborevent==max(neighborevent)),尋找最大值以及相應的位置索引;
isempty(a) a若為空返回1,不為空返回0
union(a, b) :集合並集
setdiff(a, b) :集合a減集合b的差集(如果集合a中的元素都在b中存在,則結果為空)
ismember(a, a) :判斷是否是集合中的元素
sort(a):對向量進行排序
issorted(a):判斷集合是否有序
setxor :集合異或(在並集但不在交集中的元素)
unique :返回集合的不重複元素(去掉相同元素)
a = [1,2,3,4,5,6];
b = [1,2,3,7,8,9];
c = [1,2,3,6,5,4,7,8,9];
d = [1,1,2,2,3,3]
intersect(a,b); % ans = [1,2,3]
union(a,b); % ans = [1,2,3,4,5,6,7,8,9]
setdiff(a,b) % ans = [4,5,6]
setdiff(a,c) % ans = empty matrix: 1-by-0
ismember(1,a); % ans = 1
sort(c); % ans = [1,2,3,4,5,6,7,8,9]
issorted(a); % ans = 1
setxor(a,b); % ans = [4,5,6,7,8,9]
unique(d); % ans = [1,2,3]
2.matlab集合運算子示例-易百教程
sort(a)若a是向量不管是列還是行向量,預設都是對a進行公升序排列。sort(a)是預設的公升序,而sort(a,'descend')是降序排序。
sort(a)若a是矩陣,預設對a的各列進行公升序排列
sort(a,dim)
dim=1時等效sort(a)
dim=2時表示對a中的各行元素公升序排列
看下面的例子
>> a=magic(3)
a =8 1 6
3 5 7
4 9 2
>> sort(a)
ans =
3 1 2
4 5 6
8 9 7
>> sort(a,1)
ans =
3 1 2
4 5 6
8 9 7
>> sort(a,2)
ans =
1 6 8
3 5 7
2 4 9
***************====
matlab中給一維向量排序是使用sort函式:sort(a),排序是按公升序進行的,其中a為待排序的向量;若欲保留排列前的索引,則可用 [sa,index] = sort(a)
,排序後,sa是排序好的向量,index 是 向量sa 中對 a 的索引。 索引使排列逆運算成為可能。
事實上,這裡a ≡sa(index) ,
[a恆等於sa(index)],這個結論確實很奇妙,而且很有用。不信你排序之後試下鍵入命令sa(index)
,看看得到的是不是就是排列前的a呢。
********************=
在matlab中排序某個向量(一維)時,可以使用sort(a),其中a為待排序的向量,如果僅是用來排序a,那麼直接使用sort(a)即可,如 果排序後還需要保留原來的索引可以用返回值,即[b,ind]=sort(a),計算後,b是a排序後的向量,a保持不變,ind是b中每一項對應於a中 項的索引。排序是安公升序進行的。
在matlab中,訪問矩陣中的元素,一維用a(1)訪問向量a的第乙個元素;(下標從1開始);二維用a(1,2)訪問a中第一行,第二列的元素。
由於在sort函式的結果中,是安公升序排序的,要轉換成降序,先用x=eye(n)生成乙個n維的單位陣,然後用x=rot90(x)將其旋轉為次對角線的單位陣,再用原來矩陣乘以x即可,如要講a逆序排列採用如下步驟:
x=eye(size(a));
x=rot90(x);
a=a*x;
假如a是乙個2*n的矩陣,即兩行.
b=a(1,:);
[c,pos]=sort(b);%pos為排序後的下標,c為第一行的排序結果;
a(2,:)=a(2,pos);%第二行按照第一行排序的下標對應
a(1,:)=c;%第一行結果重新賦給a 的第一行
以下適用於m*n的矩陣按第一行排序
[ b, pos ] = sort( a( 1, : ) );
a = a( :, pos );
********************===
b=sortrows(a,2) %a 為要排序的矩陣。2表示按第幾列進行排序,整數代表公升序,負數代表降序。
%將矩陣a按照第2列的公升序排列,其他列不會作公升序排列,而是將跟隨著第2列 的變化,保持一一對應。
b=sortrows(a,-3)
%將矩陣a按照第3列的降序排列,其他列將跟隨著第3列 的變化,保持一一對應。
data =
1 3 2
7 6 5
4 9 8
sortrows(data,1)
ans =
1 3 2
4 9 8
7 6 5
sortrows(data,-1)
ans =
7 6 5
4 9 8
1 3 2
sort horizontal vector a:
a = [78 23 10 100 45 5 6];sort(a)
ans =
5 6 10 23 45 78 100
sort matrix a in each dimension:
a = [ 3 7 5sort it again, this time returning an array of indices for theresult:0 4 2 ];
sort(a,1)
ans =
0 4 2
3 7 5
sort(a,2)
ans =
3 5 7
0 2 4
[b, ix] = sort(a, 2)b = 3 5 7
0 2 4
ix =
1 3 2
1 3 2
sort each column of matrix a in descendingorder:
a = [ 3 7 5this is equivalent to6 8 3
0 4 2 ];
sort(a,1,'descend')
ans =
6 8 5
3 7 3
0 4 2
sort(a,'descend')ans =
6 8 5
3 7 3
0 4 2
Matlab的集合運算
matlab裡有關於集合運算的函式有如下的一些 intersect 集合交集 ismember 是否集合中元素 issorted 判斷集合是否排序 相關函式,sort 排序 setdiff 集合差集 setxor 集合異或 不在交集中的元素 union 兩個集合的並 unique 返回向量作為乙個集...
sort排序演算法集合
public class sort quicksortarray array 氣泡排序 效率 o n 適用於排序小列表 private static void bubblesortarray int array println array 選擇排序 效率 o n 適用於排序小列表 private s...
matlab的sort函式用法
1.sort a 對一維或二維矩陣進行公升序排序,並返回排序後的矩陣 當a為二維矩陣時,對矩陣的每一列分別進行排序。2.sort a,dim 對矩陣按指定的方向進行公升序排序,並返回排序後的矩陣。當dim 1時,對矩陣的每一列排序 即將第一維行數打亂重排 當dim 2時,對矩陣的每一行排序 即將第二...