求一个 矩阵乘法的C语言程序

求一个 矩阵乘法的C语言程序,第1张

#include "stdioh"

#include "stdlibh"

void main ()

{

int m,l,p,q;

printf("输入第一个矩阵的维数m和l:\n");

scanf("%d%d",&m,&l);

printf("输入第二个矩阵的维数p和q:\n");

scanf("%d%d",&p,&q);

while (l!=p)

{

printf("两个矩阵不匹配,不能进行相乘运算,请重新输入\n\n");

printf("输入第一个矩阵的维数m和l:\n");

scanf("%d%d",&m,&l);

printf("输入第二个矩阵的维数p和q:\n");

scanf("%d%d",&p,&q);

}

double a[200][200]={0}, b[200][200]={0},sum=0;

int i,j,k=0;

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

{

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

{

a[i][j]=(double)rand()/RAND_MAX;

}

}

printf("随机矩阵a是:\n");

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

{

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

{

printf("%f ",a[i][j]);

}

printf("\n");

}

//cout<<"输入一个32的矩阵:"<<endl;

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

{

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

{

b[i][j]=(double)rand()/RAND_MAX;

}

}

printf("随机矩阵b是:\n");

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

{

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

{

printf("%f ",b[i][j]);

}

printf("\n");

}

printf("ab相乘结果为:\n");

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

{

while (k<q)

{

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

{

sum = a[i][j]b[j][k]+sum;

}

printf("%f ",sum);

k++;

sum=0;

}

k=0;

printf("\n");

}

}

如果不满足你要求,自己再改一下吧

#include <stdioh>

int main()

{

int A[3][3]={{1,2,-1}, {1,0,-1},{3,4,0}};

int B[3][3]={{2,1,3}, {1,2,3},{-1,0,4}};

int C[3][3]={{0}};

int n = 3; / 第一矩阵的行数 /

int p = 3; / 第一矩阵的列数,即第二矩阵的行数 /

int m = 3; / 乘积矩阵的列数 /

int i, j, k;

for(int i = 0; i < n; i++)

{

for(int j = 0; j < m; j++)

{

C[i][j] = 0; 

for(int k = 0; k < p; k++)

{

C[i][j] = C[i][j] + A[i][k]  B[k][j];

}

printf("%5d", C[i][j]);

}

printf("\n");

}

}

python实现矩阵乘法的方法

本文实例讲述了python实现矩阵乘法的方法。分享给大家供大家参考。

具体实现方法如下:

def matrixMul(A, B):

res = [[0] len(B[0]) for i in range(len(A))]

for i in range(len(A)):

for j in range(len(B[0])):

for k in range(len(B)):

res[i][j] += A[i][k] B[k][j]

return res

def matrixMul2(A, B):

return [[sum(a b for a, b in zip(a, b)) for b in zip(B)] for a in A]

a = [[1,2], [3,4], [5,6], [7,8]]

b = [[1,2,3,4], [5,6,7,8]]

print matrixMul(a,b)

print matrixMul(b,a)

print "-"90

print matrixMul2(a,b)

print matrixMul2(b,a)

print "-"90

from numpy import dot

print map(list,dot(a,b))

print map(list,dot(b,a))

#Out:

#[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]

#[[50, 60], [114, 140]]

#------------------------------------------------------------------------

#[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]

#[[50, 60], [114, 140]]

#------------------------------------------------------------------------

#[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]

#[[50, 60], [114, 140]]

希望本文所述对大家的Python程序设计有所帮助。

怎么说呢,错误太多了,双引号都是全角的

数组越界,返回值怎么可能有多个?

修改后程序如下:

#include "stdioh"

int r[6][6];

void mult(int a[6][6] , int b[6][6])

{

int i,j;

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

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

r[i][j]=a[i][j]b[i][i];

printf("\n两个矩阵相乘后的结果为:\n");

for(i=1;i<=6;i++)

{

for(j=1;j<=6;j++)

printf("%4d",r[i][j]);

printf("\n");

}

}

main()

{

int i,j;

int num1[6][6],num2[6][6];

printf("请输入第一个矩阵的值:\n");

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

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

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

printf("请输入第二个矩阵的值:\n");

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

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

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

mult(num1,num2);

}

//矩阵乘法属于线性代数;矩阵乘法的原理不难,只要原理搞请,代码很好写的

#include<stdioh>

/功能为计算给定的矩阵a(m行n列)和矩阵b(n行t列)的乘积矩阵c/

void f(int a[3][4], int b[4][3], int c[3][3], int m, int n, int t) {

//矩阵乘法:前行乘后列

//矩阵a的行(m)作为矩阵c的行

//矩阵b的列(t)作为矩阵c的列

for (int i = 0; i < m; i++) {//新矩阵m行

for (int j = 0; j < t; j++) {//新矩阵t列

int sum=0;

for (int k = 0; k < n; k++) {

sum += (a[i][k] b[k][j]);//行列对应相乘,然后累加

}

c[i][j]=sum;

}

}

}

/ 请在这里填写答案 /

/

1 2 3 4

2 3 4 5

3 4 5 6

1 2 3

2 3 4

3 4 5

4 5 6

/

int main() {

int i, j, a[3][4], b[4][3], c[3][3];

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

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

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

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

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

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

f(a, b, c, 3, 4, 3);

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

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

printf("%5d", c[i][j]);

printf("\n");

}

}

以上就是关于求一个 矩阵乘法的C语言程序全部的内容,包括:求一个 矩阵乘法的C语言程序、c++怎么编写两个矩阵相乘的程序、python实现矩阵乘法的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9781784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存