0
我在Matlab中有兩個矩陣。重排排列中的元素matlab
和
我要分配根據同一小區值到它的對應的所述的矩陣列數和移動元件有具有元件。我想用B映射B的元素,以便B元素也移動到那個位置。
我想這
也因此,
有沒有辦法做到這一點? 謝謝。
我在Matlab中有兩個矩陣。重排排列中的元素matlab
和
我要分配根據同一小區值到它的對應的所述的矩陣列數和移動元件有具有元件。我想用B映射B的元素,以便B元素也移動到那個位置。
我想這
也因此,
有沒有辦法做到這一點? 謝謝。
我能想到的最簡單的方法是創建行/列對,其中行對應於矩陣的行位置,列位置是矩陣本身的實際元素。在這些行/列對中看到的值再次只是矩陣值本身。
你可以很容易地用sparse
來做到這一點。重塑基質上面和A
存儲該:
A = [1 2 5 8; 1 2 4 7];
...我會做這種方式:
r = repmat((1:size(A,1)).', 1, size(A,2)); %'
S = full(sparse(r(:),A(:),A(:)));
的第一行代碼生成矩陣中的每個A
值行的位置,然後使用sparse
指定行/列對和相關值,我們使用full
將其轉換爲適當的數字矩陣。
我們得到:
S =
1 2 0 0 5 0 0 8
1 2 0 4 0 0 7 0
你也可以做同樣的矩陣B
。你會使用sparse
和指定第三個參數是B
代替:
B = [0.5 0.2 0.6 0.8; 0.4 0.6 0.8 0.9];
S2 = full(sparse(r(:),A(:),B(:)));
我們得到:
>> S2
S2 =
0.5000 0.2000 0 0 0.6000 0 0 0.8000
0.4000 0.6000 0 0.8000 0 0 0.9000 0
感謝。問題的描述發生了變化。對不起。 – user5916581
@ user5916581這通常是皺眉。在發佈之前,您應該徹底檢查您的問題。無論如何,我已經改變了我的答案。 – rayryeng
我真的很抱歉。這不會再發生。謝謝萬億 – user5916581