我想將列插入矩陣,但矩陣中插入列的位置因行而不同。我怎樣才能做到這一點,而不使用for循環?在Matlab中將列插入到矩陣中
以下是MATLAB中的簡化示例; 從A,X,P開始,我想在不使用for-loop的情況下獲得APX。
>> A = zeros(4,5) % inclusive matrix
A =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
>> X = [9,8;5,7;8,3;6,7] % data to insert
X =
9 8
5 7
8 3
6 7
>> P = [3;2;4;1] % insertion position within the matrix
P =
3
2
4
1
>> APX = [0,0,9,8,0;0,5,7,0,0;0,0,0,8,3;6,7,0,0,0] % what I want
APX =
0 0 9 8 0
0 5 7 0 0
0 0 0 8 3
6 7 0 0 0
使用for循環有什麼問題? – ToBe
向量化代碼比Matlab中的for循環要快得多,特別是當矩陣尺寸非常大時;即千萬x千分之一 –
@HyungDonLee你真的應該嘗試使用循環,然後再嘗試向量化。 MATLAB R2015b有一個改進的JIT引擎,其循環現在具有競爭力。 – rayryeng