精華區beta MATLAB 關於我們 聯絡資訊
: A = [1 2 : 3 4 ] : : B = [0.3 0.5] : : 想要有個矩陣 C = [1*0.3 2*0.5 : 3*0.3 4*0.5] : : 怎麼做比較好 : : 我知道可以用 B = repmat(B,2,1) 把B變成 B = [0.3 0.5 : 0.3 0.5 ] : : 再用A.*B 但是因為A矩陣列數很多,不想把B弄成很大的矩陣,會浪費記憶體 : : 有直接的算法求出C嗎? : : 推 Ysen:轉成陣列運算完在轉回矩陣.. 140.113.156.55 09/14 : 推 wolako:C=[A(:,1)*B(1),A(:,2)*B(2)] 140.129.65.184 09/14 : 推 Ysen:推上面@@,我怎麼沒想到呢..XD 140.113.156.55 09/14 ========================================================================== 樓上大大的作法很不錯,不過如果A是100 x 100矩陣 B是 1 x 100矩陣 ,結果還是要用迴圈寫吧 這樣不會比把B擴大成100 x 100,再和A相乘有效率吧 那Ysen大大的作法是怎樣呢 可以說清楚一點嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.91.70.233
jimpeng:照現在的PC 為什麼會有擔心浪費記憶體的考慮? 203.70.99.160 09/14
icene:因為跑模擬 有125個類別,每個要10萬次 219.91.70.233 09/14
icene:如果太多個125 x 10萬矩陣變數,會當掉,我試過 219.91.70.233 09/14
Ysen:我的弄到後來會跟妳上面敘述的差不多.. 220.135.248.30 09/15