2015年3月2日 星期一

14.陣列(矩陣)處理函數

陣列(矩陣)處理函數


命令
功能
[A, B] [A  B]
將相同列數的AB陣列合併成新的橫排陣列,此陣列的列數不變。
[A; B]
將相同行數的AB陣列合併成新的縱排陣列,此陣列的行數不變。
cat(dim, A, B)
dim指定,將AB陣列合併成新的陣列,AB陣列的dim維度必須相同。dim1, 2, ...分別表示row, column, ...
diag(A)
回傳陣列A的主對角元素之行向量
diag(A, n)
回傳陣列A的第n個對角元素之行向量
diag(x)
建構一個以x為內容的對角矩陣,除主對角元素以外均為0
flipdim(A, dim)
將陣列Adim維度翻轉。dim1, 2, ...分別表示row, column, ...
fliplr(A)
將陣列A的元素左右翻轉。
flipud(A)
將陣列A的元素上下翻轉。
repmat(A,[m, n, ..., r])
將陣列A的元素沿第一維度重複m次;沿第二維度重複n次,以此類推。
repmat(A, m, n)
將陣列A的元素沿第一維度重複m次;沿第二維度重複n次。
reshape(A, m, n)
將陣列A的元素重新建立一個大小為m×n的陣列元素各數不可增減
rot90(A)
將陣列A的元素逆時針旋轉90度。
rot90(A, n)
將陣列A的元素逆時針旋轉90×n度。
tril(A)
回傳陣列A的下三角陣列
tril(A, n)
回傳陣列A的第n個下三角陣列
triu(A)
回傳陣列A的上三角陣列
triu(A, n)
回傳陣列A的第n個上三角陣列
wshift(type, x, p)
()向量x之循環位移
type可為1'1''1d''1D'p必須為整數,p>0為向左()循環位移;p<0為向右()循環位移;p=0則維持不變。
wshift(type, A, p)
陣列A之循環位移,type可為2'2''2d''2D'p必須為整數的列向量,p(1)控制行循環位移;p(2)控制列循環位移。p(1)>0為向上循環位移;p(1)<0為向下循環位移;p(1)=0則維持不變;p(2)>0為向左循環位移;p(2)<0為向右循環位移;p(2)=0則維持不變。

>> A=magic(3); B=2*A;
>> C=[A; B]
C =
     8     1     6
     3     5     7
     4     9     2
    16     2    12
     6    10    14
     8    18     4
>> D=[A B]
D =
     8     1     6    16     2    12
     3     5     7     6    10    14
     4     9     2     8    18     4
>> E=cat(2,A,B)
E =
     8     1     6    16     2    12
     3     5     7     6    10    14
     4     9     2     8    18     4
>> diag(E)
ans =
     8
     5
     2
>> x=diag(E)
x =
     8
     5
     2
>> diag(x)
ans =
     8     0     0
     0     5     0
     0     0     2
>> diag(E,-1)
ans =
     3
     9
>> diag(E,3)
ans =
    16
    10
     4
>> flipdim(A,1)
ans =
     4     9     2
     3     5     7
     8     1     6
>> fliplr(A)
ans =
     6     1     8
     7     5     3
     2     9     4
>> flipud(A)
ans =
     4     9     2
     3     5     7
     8     1     6
>> repmat(A,[2, 3, 1])
ans =
     8     1     6     8     1     6     8     1     6
     3     5     7     3     5     7     3     5     7
     4     9     2     4     9     2     4     9     2
     8     1     6     8     1     6     8     1     6
     3     5     7     3     5     7     3     5     7
     4     9     2     4     9     2     4     9     2
>> repmat(A,2,3)
ans =
     8     1     6     8     1     6     8     1     6
     3     5     7     3     5     7     3     5     7
     4     9     2     4     9     2     4     9     2
     8     1     6     8     1     6     8     1     6
     3     5     7     3     5     7     3     5     7
     4     9     2     4     9     2     4     9     2
>> reshape(A, 1, 9)
ans =
     8     3     4     1     5     9     6     7     2
>> reshape(A(3:6), 2, 2)                %增加限制元素條件
ans =
     4     5
     1     9 
>> rot90(A)
ans =
     6     7     2
     1     5     9
     8     3     4
>> rot90(A,3)
ans =
     4     3     8
     9     5     1
     2     7     6
>> tril(A)
ans =
     8     0     0
     3     5     0
     4     9     2
>> tril(A,-1)
ans =
     0     0     0
     3     0     0
     4     9     0
>> triu(A)
ans =
     8     1     6
     0     5     7
     0     0     2
>> triu(A,1)
ans =
     0     1     6
     0     0     7
     0     0     0
>> wshift('1d', x, 1)
ans =
     5
     2
     8
>> wshift('1d', x, -1)
ans =
     2
     8
     5
>> wshift('2d', A, [1 -1])
ans =
     7     3     5
     2     4     9
     6     8     1
>> wshift('2d', A, [-1 0])
ans =
     4     9     2
     8     1     6
     3     5     7

沒有留言:

張貼留言