計算2行3列的矩陣ma和3行2列的矩陣mb的乘積,把結果儲存到2行2列的矩陣中

2021-05-22 07:42:51 字數 4292 閱讀 7019

1樓:匿名使用者

# include

int main()

}for (i=0;i<2;i++)

return 0;}

編寫一個函式實現矩陣a(2行3列)與矩陣b(3行2列)相乘,乘積放在c陣列中。在主

2樓:匿名使用者

#include

using namespace std;

int main()

;int b[3][2] = ;

int c[2][2] = ;

cout << "輸入矩陣a(

2行3列)元素的各個值:" << endl;

for(int i = 0;i < 2;i++)for(int j = 0;i < 3;j++)cin >> a[i][j];

cout << "輸入矩陣b(3行2列)元素的各個值:" << endl;

for(int i = 0;i < 3;i++)for(int j = 0;i < 2;j++)cin >> b[i][j];

for(int i = 0;i < 2;i++)for(int j = 0;i < 2;j++)for(int k = 0;k < 3;k++)c[ i ][ j ] += a[j][k] * b[k][j];

cout << "結果為: " << endl;

for(int i = 0;i < 2;i++)return 0;}

c語言:輸入一個2行3列的矩陣a和一個3行4列的矩陣b,計算兩矩陣的乘積

3樓:曉龍修理

解題過程如下:

#include ;#include

#define l 2,#define m 3,#define n 4

}printf("\n");}return;}int main(void)};

double b[m][n] = };double c[l][n] = };int i = 0, j = 0, k = 0;

printf("\ngenerate a[%d][%d]:\n", l, m);

genarr(&a[0][0], l, m);

printmatrix(&a[0][0], l, m);

printf("\ngenerate b[%d][%d]:\n", m, n);

}}printf("\ncalc c[%d][%d]:\n", l, n);

性質:矩陣相乘最重要的方法是一般矩陣乘積。它只有在第一個矩陣的列數(column)和第二個矩陣的行數(row)相同時才有意義  。

一般單指矩陣乘積時,指的便是一般矩陣乘積。一個m×n的矩陣就是m×n個數排成m行n列的一個數陣。由於它把許多資料緊湊地集中到了一起,所以有時候可以簡便地表示一些複雜的模型,如電力系統網路模型。

當矩陣a的列數(column)等於矩陣b的行數(row)時,a與b可以相乘。矩陣c的行數等於矩陣a的行數,c的列數等於b的列數。乘積c的第m行第n列的元素等於矩陣a的第m行的元素與矩陣b的第n列對應元素乘積之和。

當提及「矩陣相乘」或者「矩陣乘法」的時候,並不是指代這些特殊的乘積形式,而是定義中所描述的矩陣乘法。在描述這些特殊乘積時,使用這些運算的專用名稱和符號來避免表述歧義。

把給定的圖轉為鄰接矩陣,即a(i,j)=1當且僅當存在一條邊i->j。令c=a*a,那麼c(i,j)=σa(i,k)*a(k,j),實際上就等於從點i到點j恰好經過2條邊的路徑數(列舉k為中轉點)。

類似地,c*a的第i行第j列就表示從i到j經過3條邊的路徑數。同理,如果要求經過k步的路徑數,只需要二分求出a^k即可。

4樓:匿名使用者

#include

int main()}}

for(x=0;x<2;x++)

return 0;}

c語言求出矩陣a和矩陣b的乘積,結果存入矩陣c中,並按矩陣的形式將c列印輸出。其中a是3行2列陣列

5樓:匿名使用者

#include

int main()

,i,j,k,temp;

printf("輸入陣列

a[3][2]: \n");

for(i=0;i<3;i++)//初始陣列a[3][2]的錄入for(j=0;j<2;j++)

scanf("%d",&a[i][j]);

printf("輸入新的陣列b[2][4]: \n");

for(i=0;i<2;i++)//錄入陣列b[2][4]for(j=0;j<4;j++)

scanf("%d",&b[i][j]);

for(i=0;i<3;i++)

}printf("a、b矩陣相乘後的c矩陣:\n");

for(i=0;i<3;i++)

return 0;

}**除錯成功哈。。。

矩陣乘法運算編寫一個函式實現矩陣a(2行3列)與矩陣b相乘(3行2列),乘積放在c陣列中,並輸出c陣列

6樓:匿名使用者

#include

void main(void)

;printf("輸入陣列a:

\n");

for(i=0;i<2;i++)

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

printf("輸入陣列b:\n");

for(i=0;i<3;i++)

for(j=0;j<2;j++)

scanf("%d",&b[i][j]);

for(i=0;i<2;i++)

}printf("輸出陣列c:\n");

for(i=0;i<2;i++)}

7樓:匿名使用者

練練手:

#include

int main()

;int b[3][2] = ;

int c[2][2] ;

int i=0,j=0,k=0;

for(;i<2;i++)

for(k = 0;k<2;k++)

}for(i=0;i<2;i++)

return 0;}

三行三列矩陣能和兩行三列矩陣相乘嗎

8樓:zip改變

a3x3

b2x3

axb不可以,但是bxa可以

amxn

bqxw

若axb可以,則n=q

若bxa可以,則w=m

c語言:輸入矩陣2行3列的矩陣a和矩陣3行4列的矩陣b,計算矩陣的乘積

9樓:匿名使用者

#include

#include

#define l 2

#define m 3

#define n 4

void genarr(double *arr, int row, int col)

}void printmatrix(double *arr, int row, int col)

printf("\n");

}return;

}int main(void)

};double b[m][n] = };

double c[l][n] = };

int i = 0, j = 0, k = 0;

printf("\ngenerate a[%d][%d]:\n", l, m);

genarr(&a[0][0], l, m);

printmatrix(&a[0][0], l, m);

printf("\ngenerate b[%d][%d]:\n", m, n);

genarr(&b[0][0], m, n);

printmatrix(&b[0][0], m, n);

for (i = 0; i < l; ++i)}}

printf("\ncalc c[%d][%d]:\n", l, n);

printmatrix(&c[0][0], l, n);

return 0;}

3行2列行列式和2行3列行列式乘法

10樓:小樂笑了

這個應該是矩陣相乘,不能稱為行列式相乘。

矩陣相乘的方法,

第1個矩陣的某一行,與第2個矩陣的某一列,元素分別相乘,然後求和,得到的結果,填在結果矩陣的相應位置

matlab產生3行6列隨機矩陣找出矩陣中數值在

a rand 3,6 a 0.8147 0.9134 0.2785 0.9649 0.9572 0.1419 0.9058 0.6324 0.5469 0.1576 0.4854 0.4218 0.1270 0.0975 0.9575 0.9706 0.8003 0.9157 index find ...

excel如何快速每隔2行,選中3行

用類似於以下的公式 if or mod row 5 3,mod row 5 4,mod row 5 0 保留 下拉 輸入 if or mod row 5 選中 回車並向下填充。如果需要對每隔兩行的三行進行統一編輯,比如選中後統一填充顏色 刪除資料等,建議如下操作 在首列插入兩個新列作為輔助列 第一個...

第1行1,2,3 第2行4,5,6,7,8 第3行9,10,11,12,13,14,15 第4行16,17,18,19,20,21,22,23,

第一行3項 第二行5項 第三行7項 第n行2n 1項 每一行的第一個數等於上一行最後一個數 1 是這樣的嗎?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 腦子進水了,鑑定完畢 每行有2n 1項 每行首項為n n n的平方...