陣列(矩陣)處理函數
命令
|
功能
|
[A, B] 或
[A B]
|
將相同列數的A、B陣列合併成新的橫排陣列,此陣列的列數不變。
|
[A; B]
|
將相同行數的A、B陣列合併成新的縱排陣列,此陣列的行數不變。
|
cat(dim,
A, B)
|
依dim指定,將A、B陣列合併成新的陣列,A、B陣列的dim維度必須相同。dim為1, 2, ...分別表示row,
column, ...。
|
diag(A)
|
回傳陣列A的主對角元素之行向量。
|
diag(A, n)
|
回傳陣列A的第n個對角元素之行向量。
|
diag(x)
|
建構一個以x為內容的對角矩陣,除主對角元素以外均為0。
|
flipdim(A, dim)
|
將陣列A以dim維度翻轉。dim為1,
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