您的位置:

c语言矩阵乘法和点乘,c语言矩阵乘法和点乘的区别

本文目录一览:

c语言的矩阵乘法问题 初学者求助

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

#includestdio.h

/*功能为计算给定的矩阵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语言 矩阵相乘

#include fstream

#include IOMANIP

#include stdio.h

using namespace std;

void input_data(float b[][50])

{

int r,l;

for(int i=0;i3;i++)

{

for(int j=0;j3;j++)

{

printf("\n第%d个元素为:",i*3+j+1);//去掉b[i][j]

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

}

}

printf("输入完毕!\n");

}

void output_data(float b[][50])

{

int r,l;

for(int i=0;i3;i++)

{

for(int j=0;j3;j++)

{

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

}

printf("\n");

}

}

void multiply(float M[50][50],float N[50][50],float J[50][50])

{

float sum;

int l=3;

int l1=3;//都是三乘三的吧,方阵

int k=3;//K赋初值

for(int i=0;ik;i++)

{

for( k=0;kl;k++)

{

sum=0;//赋初值

for(int j=0;jl1;j++)

{

sum+=M[i][j]*N[j][k];

}

J[i][k]=sum;

sum=0;

}

}

}

void main()

{

float A[50][50];

float B[50][50];

float C[50][50]={0};//赋初值

input_data(A);

output_data(A);

multiply(A,A,C);

output_data(C);

}//1 2 3 4 5 6 7 8 9

C语言中两矩阵相乘

#include stdio.h

int main()

{

int x,y,z;

int i,j,l;

int sum=0;

printf("请输入前一个矩阵的行数,列数与后一个矩阵的列数:\n");

scanf("%d %d %d",x,y,z);

int a[x][y];

int b[y][z];

int c[x][z];

//读入矩阵

printf("请输入矩阵a:\n");

for(i=0;ix;i++){

for(j=0;jy;j++){

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

}

}

printf("请输入矩阵b:\n");

for(i=0;iy;i++){

for(j=0;jz;j++){

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

}

}

printf("矩阵a为:\n");

for(i=0;ix;i++){

for(j=0;jy;j++){

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

if(j==y-1)

printf("\n");

else

printf("\t");

}

}

printf("矩阵b为:\n");

for(i=0;iy;i++){

for(j=0;jz;j++){

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

if(j==z-1)

printf("\n");

else

printf("\t");

}

}

for(i=0;ix;i++){

for(l=0;lz;l++){

for(j=0;jy;j++){

sum+=a[i][j]*b[j][l];

if(j==y-1){

c[i][l]=sum,sum=0;

}

}

}

}

printf("矩阵a与矩阵b的乘积为:\n");

for(i=0;ix;i++){

for(j=0;jz;j++){

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

if(j==z-1)

printf("\n");

else

printf("\t");

}

}

return 0;

}

C语言实现矩阵乘法

1,若程序定义为三行三列的矩阵,并在主函数中键盘赋值。请编写函数juzhen(int a[][3],int n),函数功能是:使矩阵左下角元素中的值乘以.例如:若矩阵中的值为:

1 9 7

2 3 8

4 5 6

n=3,则矩阵值变为:

1 9 7

6 9 8

12 15 18

注:二维数组下三角元素每行最后元素的列标和该列的列号一致

#include stdio.h

int juzhen(int a[][3],int n)

{

int i,j;

for (i=1;i3;i++)

for (j=0;j=i;j++)

a[i][j]=a[i][j]*n;

}

main()

{

int i,j,a[3][3],m;

clrscr();

printf("please enter 9 numbers :\n");

for (i=0;i3;i++)

for (j=0;j3;j++)

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

printf("the old ju zhen is:\n");

for (i=0;i3;i++)

{

for (j=0;j3;j++)

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

printf("\n");

}

printf("please enter a int number:\n");

scanf("%d",m);

juzhen (a,m);

printf("the new ju zhen is:\n");

for (i=0;i3;i++)

{

for (j=0;j3;j++)

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

printf("\n");

}

}

2,请编写函数juzhen,该函数的功能是:将三行四列矩阵x乘以四行三列矩阵y,结果放在三行三列矩阵中。矩阵相乘的基本方法是:矩阵Xy中行列下标分别为i,j的元素的值,是矩阵X中第i行上四个元素与矩阵Y中第j列上四个元素对应相乘的积。

X和Y矩阵原型可运行后看到!

#include conio.h

#include stdio.h

void juzhen (int a[3][4],int b[4][3],int ab[3][3])

{

int i,j,z;

for (i=0;i3;i++)

for (j=0;j4;j++)

for (z=0;z3;z++)

ab[i][z]=ab[i][z]+a[i][j]*b[j][z];/*此得为要填写的内容*/

}

main()

{

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

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

int xy[3][3]={0},i,j;

clrscr();

juzhen (x,y,xy);

printf("x ju zhen is:\n");

for (i=0;i3;i++)

{

for (j=0;j4;j++)

printf("%3d",x[i][j]);

printf("\n");

}

printf("y ju zhen is:\n");

for (i=0;i4;i++)

{

for (j=0;j3;j++)

printf("%3d",y[i][j]);

printf("\n");

}

printf("xy ju zhen is:\n");

for (i=0;i3;i++)

{

for (j=0;j3;j++)

printf("%3d",xy[i][j]);

printf("\n");

}

}

由于你没有说要求,我就写了两个,这是两道比较精典的求c语言矩阵乘法程序

用c语言实现两个矩阵相乘怎么做?

1、程序运行输入数据时,第一行为A矩阵的行列数和B矩阵的行列数,接着分别输入A、B两个矩阵的值。

2、首先,定义6个整型变量,保存A、B矩阵的行和列,以及控制循环的变量,k则用于实现矩阵的乘法。

3、接着,定义三个整型二维数组,保存A、B和C矩阵的各元素。

4、输入三个矩阵的行数和列数,保存在变量a、b、c中。

5、输入矩阵A的各元素,保存在数组X中。

6、输入矩阵B的各元素,保存在数组Y中。

7、将二维数组Z的各元素,初始化为0。

8、用两层for循环,控制矩阵的乘法,并输出乘法所得的结果。

9、计算A矩阵和B矩阵的乘法,结果保存在数组Z中。

10、最后,输出乘法所得的结果,即输出Z数组中的所有元素。

11、运行程序,输入矩阵A和B的行数和列数,以及A矩阵和B矩阵的所有元素,电脑就会计算出乘积C矩阵的所有元素,并输出C矩阵。

c语言矩阵的乘法

#includestdio.h

typedef struct

{

int m;

int n;

int array[100][100];

}Ju_def;

int main()

{

Ju_def Ju[11];

int i=0,m,n,k;

int flag[10];

while(1)

{

flag[i]=0;

printf("In put m and n:\n");

scanf("%d%d",Ju[i].m,Ju[i].n);

while(Ju[i].m=0||Ju[i].m100||Ju[i].n=0||Ju[i].m100)

{

printf("In put m and n again:\n");

scanf("%d%d",Ju[i].m,Ju[i].n);

}

printf("In put your array:\n");

for(m=0;mJu[i].m;m++)

{

for(n=0;nJu[i].n;n++)

{

scanf("%d",Ju[i].array[m][n]);

if(Ju[i].array[m][n]==0)

flag[i]++;

}

}

if(flag[i]==(Ju[i].m*Ju[i].n))//矩阵元素全为0才退出循环

{

flag[i]=1;

break;

}

else

flag[i]=0;

i++;

i=i%10;//超过10个矩阵,则又循环到第1个。

}

for(i=1;i10;i++)

{

if((Ju[i].m!=Ju[0].n)(flag[i]==0))

{

printf("Not satisfied the definition of matrix multiplication !\n");

return 0;

}

if(flag[i])

{

break;

}

for(m=0;mJu[0].m;m++)

{

for(n=0;nJu[0].n;n++)

{

Ju[10].array[m][n]=0;

for(k=0;kJu[i].m;k++)

{

Ju[10].array[m][n]+=Ju[0].array[m][n]*Ju[i].array[k][n];

}

Ju[0].array[m][n]=Ju[10].array[m][n];

}

}

}

for(m=0;mJu[0].m;m++)

{

for(n=0;nJu[0].n;n++)

{

printf("%-8d",Ju[0].array[m][n]);

}

printf("\n");

}

}

你试试这个我的矩阵乘法是这样的了,A=A*B*C...(10个以内)。

c语言矩阵乘法和点乘,c语言矩阵乘法和点乘的区别

2022-11-29
c语言矩阵乘方,矩阵相乘c语言

2022-11-26
矩阵的点乘和叉乘

2023-05-19
矩阵的加减法乘法c语言,c++矩阵加法运算

本文目录一览: 1、求通过C语言实现矩阵的加、减及乘法。要自己写的,不要复制过来 2、用c语言编写矩阵的加减乘除运算 3、C语言实现的矩阵加减乘法 4、!!!跪求C语言实现矩阵运算(加,减,乘、求逆、

2023-12-08
矩阵左乘和右乘

2023-05-19
c语言矩阵加减,c语言矩阵乘法优化

2023-01-05
c语言4乘4矩阵所有元素之和,有一个3乘4矩阵,找出元素最大

2022-11-30
矩阵的加法c语言,c++实现矩阵加法

2022-11-24
矩阵储存c语言,C语言矩阵

2023-01-04
Python实现矩阵乘法

2023-05-10
Python矩阵点乘:全方位解析

2023-05-17
深入理解矩阵乘法

2023-05-19
矩阵相乘算法详解

2023-05-20
c语言处理矩阵,c语言程序设计矩阵运算

2022-12-01
使用C++编写一个矩阵乘法函数

矩阵乘法是线性代数中的基础操作之一,也是一些科学计算领域必不可少的运算。在编写科学计算程序时,我们经常需要使用矩阵乘法。本文将介绍如何使用C++编写一个矩阵乘法函数,来实现矩阵乘法运算。 一、矩阵乘法

2023-12-08
R语言矩阵转置

2023-05-18
c语言循环连乘,c语言如何循环累加

2023-01-05
Python 程序:两个矩阵相乘

2022-07-24
PyTorch中矩阵乘法的使用方法

2023-05-18
c语言矩阵快速幂,快速幂算法c语言代码

本文目录一览: 1、矩阵的幂怎么算? 2、如何用c语言中的函数递归调用算法实现n阶矩阵的n次幂的求解? 3、c语言,快速幂代码是什么,怎么用? 4、用C/C++如何实现矩阵的幂运算,求高手作答~ 5、

2023-12-08