MATLAB--reshape的妙用
? ? 最近一段時間,都在使用MATLAB做信號處理,由于實驗測量要求,有大量的數據需要進行拼接成接近512或2014個點后進行傅里葉變化,對于我這種基本沒用過MATLAB的小白來說,將一個二維的矩陣轉換成三維矩陣,我首先想到的就是用三層循環去拼接,直到那天看到之前一個師兄留下來的代碼,發現他只用了一行代碼就實現了我的三層循環才做到的內容,他就是利用了reshape這個函數。
我去專門學習了一下關于reshape
Matlab中關于reshape函數的調用有兩種,一種是B = reshape(A,[m,n]);其意為將A矩陣轉換為m行n列的矩陣B,這種必須要確保m*n的數值與A中元素的個數相同。例如下圖所示的示例:
值得注意的是,reshape在進行矩陣的換維時,都是按矩陣的一列進行變換,比如下面這個例子,從A的第一列開始,形成的也是B的第一列。
同樣,對于二維的矩陣我們也可以轉換稱三維的,比如下面的例子:
這樣對于數據的降維與增維是特別方便的,而且能夠很大的提高代碼的時間復雜度,新技能get.