Matlab-重构和重新排列数组
MATLAB中的許多函數(shù)都可以提取現(xiàn)有數(shù)組的元素,然后按照不同的形狀或順序放置。這樣有助于預處理數(shù)據(jù),便于之后進行計算或分析。
1、重構
reshape?函數(shù)可以更改數(shù)組的大小和形狀。例如,將 3×4 矩陣重構成 2×6 矩陣。
只要不同形狀中的元素數(shù)量相同,就可以將它們重構成具有任意維度的數(shù)組。使用?A?中的元素,創(chuàng)建一個 2×2×3 的多維數(shù)組。
C = reshape(A,2,2,3)C = C(:,:,1) = 1 3 2 4C(:,:,2) = 5 7 6 8C(:,:,3) = 9 11 10 122、轉置和翻轉
線性代數(shù)中常見的任務是轉置矩陣,即將矩陣的行變成列,將列變成行。要實現(xiàn)此目的,可以使用?transpose?函數(shù)或?.'?運算符。
創(chuàng)建一個 3×3 矩陣并計算其轉置。
???????
A = magic(3)A = 3×3 8 1 6 3 5 7 4 9 2B = A.'B = 3×3 8 3 4 1 5 9 6 7 2類似的運算符?'?可以計算復矩陣的共軛轉置。此操作計算每個元素的復共軛并對其進行轉置。創(chuàng)建一個 2×2 復矩陣并計算其共軛轉置。???????
flipud?上下翻轉矩陣的行,fliplr?左右翻轉矩陣的列。???????
A = [1 2; 3 4]A = 2×2 1 2 3 4B = flipud(A)B = 2×2 3 4 1 2C = fliplr(A)C = 2×2 2 1 4 33、平移和旋轉
使用?circshift?函數(shù),可以將數(shù)組的元素平移一定的位置數(shù)。例如,創(chuàng)建一個 3×4 矩陣,然后將其各列向右平移 2 個位置。第二個參數(shù)?[0 2]?要求?circshift?將各行平移 0 個位置,將各列向右平移 2 個位置。???????
要將?A?的各行向上平移 1 個位置而各列保持不動,請將第二個參數(shù)指定為?[-1 0]。???????
C = circshift(A,[-1 0])C = 3×4 5 6 7 8 9 10 11 12 1 2 3 4rot90?函數(shù)可以將矩陣逆時針旋轉 90 度。???????
A = [1 2; 3 4]A = 2×2 1 2 3 4B = rot90(A)B = 2×2 2 4 1 3如果再旋轉 3 次(使用第二個參數(shù)指定旋轉次數(shù)),最后將得到原始矩陣?A。???????
C = rot90(B,3)C = 2×2 1 2 3 44、排序
對數(shù)組中的數(shù)據(jù)進行排序也是一項實用功能,MATLAB 提供了幾種排序方法。例如,sort?函數(shù)可以按升序或降序對矩陣的每一行或每一列中的元素進行排序。創(chuàng)建矩陣?A,并按升序對?A?的每一列進行排序。
按降序對每一行進行排序。第二個參數(shù)值?2?指定您希望逐行排序。???????
C = sort(A,2,'descend')C = 4×4 16 13 3 2 11 10 8 5 12 9 7 6 15 14 4 1要整行排序,請使用?sortrows?函數(shù)。例如,根據(jù)第一列中的元素按升序對?A?的各行排序。行的位置發(fā)生變化,但每一行中元素的順序不變。???????
D = sortrows(A)D = 4×4 4 14 15 1 5 11 10 8 9 7 6 12 16 2 3 13?
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Matlab-重构和重新排列数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab-使用逻辑值进行索引
- 下一篇: 【分享】程序的开发与编写