簡體   English   中英

Matlab將矩陣中的每一行乘以不同的數字

[英]Matlab multiply each row in matrix by different number

假設我有一個矩陣:

A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ; 10 11 12];

有沒有辦法繁殖:
第1行第1行
第2排2
第3行第3行
等等?

我能夠使用for循環執行此操作,但是如果對於他們希望我們使用矩陣的分配,它。 在實際分配中, A用隨機數填充,但每行連續相乘。

謝謝,非常感謝任何幫助

你只需將對角矩陣乘以A就好了。

A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ; 10 11 12];
disp(diag([1 2 3 4]) * A);

 1     2     3
 8    10    12
21    24    27
40    44    48

您可以使用bsxfun輕松快速地完成此任務

out = bsxfun(@times, [1 2 3 4].', A)

在較新版本的MATLAB(R2016b和更新版本)中,您實際上可以簡單地用*替換bsxfun

out = [1 2 3 4].' * A;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM