matlab裡影象處理時,經常會把一維陣列轉二維陣列,二維陣列轉一維,如下圖所示:
一般經常使用的函式是reshape,可以在不同維度之間進行轉換,不過需要事先計算陣列每個維度的長度,針對二維轉一維的情況,就顯得有點麻煩。所以本部落格推薦一種極為方便的二維陣列轉一維的方法,可以減少寫**時的脫髮量。
以二維和一維之間相互轉化為例,對比兩種方法
方法一:reshape
a =(1
:9)b =
reshape
(a,[3,
3])c =
reshape
(b,[1,9])
方法二:yaoyee
a =(1
:9)b =
reshape
(a,[3,
3])c =b(
:)d =c(:
)'
方法一:reshape
方法二:yaoyee
本部落格提出的方法二yaoyee中第三行**,可以直接實現將二維矩陣轉為一維矩陣,而不用去考慮一維矩陣長度,可以便利**編寫。但是其輸出的矩陣預設為豎向(n×1),對於求矩陣矩陣、方差等統計量無影響,如有特殊需求可以對其進行轉置操作,同時方法二也無法實現將一維陣列自動轉為二維陣列,此步驟可依舊採用reshape。
猜你喜歡:??⭐【matlab】乙個超簡單的生成順序陣列的方法
⭐matlab去掉陣列中0
matlab練習程式(7個二維不變矩)
數字影象處理 書上說這7個矩是旋轉 縮放 平移不變的,因此用這7個矩就可以代表乙個影象了。我只試驗了縮放的,這幾個數幾乎是不變的,也許做影象檢索的時候可以用到。影象的各階矩 mm zeros 4,4 for y 1 m for x 1 n for q 1 4 for p 1 4 mm q,p mm ...
matlab練習程式(7個二維不變矩)
數字影象處理 書上說這7個矩是旋轉 縮放 平移不變的,因此用這7個矩就可以代表乙個影象了。我只試驗了縮放的,這幾個數幾乎是不變的,也許做影象檢索的時候可以用到。影象的各階矩 mm zeros 4,4 for y 1 m for x 1 n for q 1 4 for p 1 4 mm q,p mm ...
一種將二維表轉換為一維表的方法
計算聚類演算法相關係數的時候,如果開始不知道聚簇和節點數量,如下表所示 k1k2 v1 v2.這時候可以把每個係數看做乙個物件 public class thet 這樣就可以在類中建立乙個一維表,不用考慮v和k的數量了 缺點就是這樣查詢起來可能會慢一點,以後看看有沒有更好的辦法 我是分割線 前面想到...