【Matlab提取離散元素】矩陣取出多個離散元素
阿新 • • 發佈:2018-11-08
由於Matlab是按照列優先儲存資料,矩陣實際也是一維陣列:
對於零矩陣C[5*11]是5行11列. 使[1;2;3;4;5]行的 [3;4;6;8;9]列,五個元素為1如下程式碼:
基本思想:每列5個元素對應的列select_minQ-1乘以5,計算每列最後一個元素的座標位置;
#由於matlab沒有index=0;
select_minQ-1表示最後一個元素位置,加上[1;2;3;4;5],表示下一行的位置。
select_minQ = [3;4;6;8;9]; select_C = zeros(5,11); select_index = ([1;2;3;4;5]) + (select_minQ-1)*5; select_C(select_index) = 1;
select_C = zeros(5,11):
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
select_C(select_index) = 1 :
0 0 1 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0