Matlab矩陣乘法,matlab計算兩矩陣點乘

2022-06-17 18:26:38 字數 5290 閱讀 3831

1樓:輝運發秘項

這主要是因為計算機的工作原理:

matlab自帶的a*b演算法是在彙編級別編輯好的運算,計算機不用做多餘的工作,直接對矩陣中的資料進行相乘處理。

計算機處理過程大體是:尋兩個矩陣位址-載入乘法函式-運算並將結果寫入相應位址-位址位加1-運算並將結果寫入相應位址-...-運算並將結果寫入相應位址-讀取到結束位-結束運算。

而用for-loop自己編寫乘法,本身就是呼叫了for-loop兩個函式,這是需要時間的。同時,計算機要重新分配位址記錄for函式迴圈中產生的變數,小點的矩陣還好說,階數較高、資料較複雜時,計算機會花更多的時間來處理這些和相乘沒有直接關係的**和運算。

計算機處理過程大體是:載入for函式-為變數分配位址-為變數賦值-查詢矩陣位址-查詢矩陣階數-判斷大小-查詢矩陣位址-讀取相應資料-載入乘法函式-運算並將結果寫入相應位址-為for變數賦值-查詢矩陣位址-查詢矩陣階數-判斷大小-...-判斷大小-結束運算。

明顯要比a*b多了好多任務作,所以會慢很多。

lz可以做個比較直觀的實驗:用迴圈編輯乙個較複雜的迭代運算,在其中加入一行顯示迭代次數的**,記錄運算時間。再在這行**後面加上分號,再看看運算時間。

你會發現後者時間比前者有明顯的縮短。這就是因為計算機占用了一部分時間來處理顯示資料的**。

可以參考一些微機原理、組合語言等材料會有更深的理解。

matlab計算兩矩陣點乘

2樓:匿名使用者

1、開啟matlab,在命令列視窗中輸入a=[2 4;6 9],b=[1 5;5 8],建立2行2列的a,b矩陣

,如下圖所示。

2、使用矩陣點乘,兩個矩陣的對應位置元素相乘,在命令視窗中輸入「a.*b」,如下圖所示。

3、按回車鍵之後,可以看到得到的結果是a和b矩陣對應項相乘的結果,一般兩個矩陣相乘的話,都使用點乘。

4、我們也可以看一下一般乘法,a*b。

5、按回車鍵,得到的結果是兩個矩陣相乘的結果。

3樓:嘉文四世丶威威

matlab計算兩矩陣點乘的具體步驟如下:

1、首先開啟matlab軟體,在命令視窗輸入乙個矩陣,比如a=[1 2;3 4]。

2、然後按回車鍵,得到乙個2維矩陣a。

3、然後在命令視窗繼續輸入乙個矩陣,比如b=[5 6;7 8]4、然後按回車鍵,得到乙個2維矩陣b。

5、最後輸入c=a*b。

6、按回車鍵,得到兩個矩陣的乘積c矩陣。

4樓:匿名使用者

矩陣點乘要求兩矩陣維數相等,即mxn維矩陣乘以mxn維矩陣例:a=[1 1 1;2 2 2] b=[3 3 3;4 4 4]

matlab語句:a.*b

同樣,也可以使用dot函式進行求解,如dot(a, b);詳情help dot

5樓:free喬焜

首先兩個矩陣必須維度完全相同,a.*b就是點乘,在第乙個運算元後加個點就行了

6樓:匿名使用者

使用函式 dot

dot(a,b)計算兩個矩陣的點積

7樓:劉賀

clear all;clc;

a=rand(5,5);

b=magic(5);

c=a.*b

matlab 計算兩個矩陣相乘

8樓:匿名使用者

.* 表示矩陣與矩陣相乘,滿足線性代數上學的矩陣與矩陣的乘法,*表示矩陣中元素與元素相乘,這兩個矩陣的維數必需相同。

例如:a.*b,那麼a是m行n列的話,b必須也是m行n列。其他的如: 「/ 與 ./ 」 ,「.^ 與 ^ 」的含義都是一樣的。

題目中源**如下:

>> a=[1 3 0.5 1 2; 1/3 1 1/2 1/2 1/2 ; 2 2 1 4 3;1 2 1/4 1 5; 1/2 2 1/3 1/5 1]

>> w=[0.2069 0.069 0.4138 0.2069 0.1034]

>> c1=a.*w

c1為矩陣a和w相乘的結果。由於兩個矩陣維數不同,結果提醒出錯。

怎樣使用matlab計算矩陣乘法

9樓:幸淑英中妝

*表示矩陣與矩陣相乘,滿足線性代數上學的矩陣與矩陣的乘法,.*表示矩陣中元素與元素相乘,這兩個矩陣的維數必需相同。

例如:a.*b,那麼a是m行n列的話,b必須也是m行n列。

其他的如:「/與

./」,「.^與^

」的含義都是一樣的

matlab 矩陣乘法以及矩陣點乘的規則區別

10樓:匿名使用者

計算步驟:復

前面的(1 2 3)制*(123;456;789)(123)*(123)=1*1+2*2+3*3=14(123)*(456)=1*4+2*5+3*6=32(123)*(789)=1*7+2*8+3*9=48同理,一共3*3=9個數,最後把所有得數相加就是a*b的結果了

怎樣用matlab求矩陣的乘積

11樓:匿名使用者

用matlab求矩陣

復的乘積

一般乘法:制a*b

a、baib代表兩個du矩陣。

>> b = [2,5,8;3,7,2;5,3,2];

>> a = [1,2,3;3,4,6;4,6,5];

>> a*b

ans =

23    28    18

48    61    44

51    77    54

矩陣點乘:

zhia.*b

即兩矩陣的對應項相乘。

>> a = [1,2,3;3,4,6;4,6,5];

>> b = [2,5,8;3,7,2;5,3,2];

>> a.*b

ans =

2    10    24

9    28    12

20    18    10

用matlab求矩陣的逆矩陣

命令:inv(a)或a^-1

inv是英語單詞inverse(逆向)的縮寫。

>> a = [1,2,3;3,4,6;4,6,5];

>> inv(a)

ans =

-2.0000    1.0000         01.

1250   -0.8750    0.37500.

2500    0.2500   -0.2500

12樓:子衿悠你心

舉個例子:

a和b是兩個矩陣,則:

a*b代表正常的線性代

數中的矩陣相乘;

a.*b代表兩個矩版

陣的對應元權素相乘,其中生成的同階矩陣c的對應的矩陣元素為:c(i,j)=a(i,j)*b(i,j)。

例項:a是全為1的2*2矩陣,b是單位矩陣,下面表示a和b的矩陣相乘和a和b的點乘。

拓展說明:

點乘是陣列的運算,不加點是矩陣的運算;

點乘要求參與運算的兩個量兩必須是維數相同,是對應元素的相乘;

而不加點表示的是矩陣相乘(除的時候通過逆矩陣來實現),要求內維相同,也就是前乙個矩陣的列的維數等於後乙個矩陣的行的維數。

13樓:吧友

舉個bai例子,a和b是兩個矩陣,則du:

1、a*b代表正常的線zhi性代數中的矩dao陣內相乘。

2、a.*b代表兩個容矩陣的對應元素相乘,其中生成的同階矩陣c的對應的矩陣元素為:c(i,j)=a(i,j)*b(i,j)。

3、a是全為1的2*2矩陣,b是單位矩陣,下面表示a和b的矩陣相乘和a和b的點乘。

1、矩陣是高等代數學中的常見工具,也常見於統計分析等應用數學學科中。 在物理學中,矩陣於電路學、力學、光學和量子物理中都有應用;電腦科學中,三維動畫製作也需要用到矩陣。 矩陣的運算是數值分析領域的重要問題。

2、將矩陣分解為簡單矩陣的組合可以在理論和實際應用上簡化矩陣的運算。對一些應用廣泛而形式特殊的矩陣,例如稀疏矩陣和準對角矩陣,有特定的快速運算演算法。

14樓:匿名使用者

矩陣有兩種乘法:點乘和插乘。比如矩陣a乘以矩陣b,matlab語言表示如下:

點乘:a.*b

插乘:a*b

點乘為兩個矩陣的對應項相乘,插乘為一般的矩陣乘法。

15樓:

直接兩個矩陣用「*」就可以,不過要注意矩陣的大小要符合乘法的規則

matlab中矩陣乘法的**

怎樣使用matlab計算矩陣乘法

16樓:楊好巨蟹座

矩陣分析是解決很多問題的好方法,但是很多時候矩陣的運算比較繁瑣,回特別是高階矩陣運算答。這時候如果用matlab來計算就方便快捷得多。下面我將介紹一些基本的矩陣運算方法。

如加,減,乘,除,轉置,求逆。

約定:a=[1,3,5;2,4,6;7,9,8] b=[9,6,4;3,4,5;2,3,4]

工具/原料

matlab

方法/步驟

加和減:

加減法的命令很簡單,直接用加或者減號就可以了。如:

c=a+b

d=a-b

乘法:一般乘法:c=a*b,要求a的列數等於b的行數。

如果a,b是一般的向量,如a=[1,2,3] b=[3,4,5]點積: dot(a,b),

叉積: cross(a,b)

卷積: conv(a,b)

除法:一般在解線性方程組時會用到。

x=a\b 如果ax=b,則 x=a\b是矩陣方程的解。

x=b/a 如果xa=b, 則x=b/a是矩陣方程的解。

轉置:轉置時,矩陣的第一行變成第一列,第二行變成第二列,。。。

x=a.'

求逆:要求矩陣為方陣。這在矩陣運算中很常用。

x=inv(a)

17樓:公尺諾的喬伊

* 表示copy

矩陣與矩陣相乘,滿足線性代數上學的矩陣與矩陣的乘法,.*表示矩陣中元素與元素相乘,這兩個矩陣的維數必需相同。

例如:a.*b,那麼a是m行n列的話,b必須也是m行n列。

其他的如: 「/ 與 ./ 」 ,「.^ 與 ^ 」的含義都是一樣的

18樓:匿名使用者

如果滿足a*b,b*c,可以用「*」,如果兩個矩陣維數相同,可以用「.*」。「.*」是點乘的意思。

怎麼用matlab生成迴圈矩陣,matlab,怎樣將每次迴圈中生成的值存在一個矩陣裡?要簡單的方法。。。。。。

影子愛蟲蟲 lihaiyonglhy yahoo.com.cn n點迴圈卷積 x1 x1 zeros 1,n length x1 x2 x2 zeros 1,n length x2 m 0 n 1 t 0 n 1 x2 x2 mod m,n 1 反折h zeros n,n for n 1 n m m...

matlab小波分析方面的問題,matlab小波包和小波分析

問題1是對 的 問題2也是對的 問題3的前半部分,對於頻段的計算也是對的,但是 比較各個頻段的幅值,就可知道訊號的頻率成分 是錯的。小波變換不是純頻域的方法,所以通常的應用是不合適用頻率描述分析的,到了計算結果的頻段這一步已經就完成了。你要得到各個層次結果的頻率值需要將各個層次的結果做fft,然後根...

Matlab中的syms用不了,Matlab 中的syms用不了

syms是matlab自帶的函式 功能是快速生成變數,多個符號定義的簡化 用法 syms arg1 arg2 real 該句法表示syms arg1 arg2 real 為arg1 sym arg1 real arg2 sym arg2 real 的速記符號或者 syms arg1 arg2 該句法...