矩阵相加,两个矩阵相减后的行列式怎么求?
假如两个矩阵是A和B
对应元素相减,存入C中矩阵相加:
C = A – B;
再求C中所有元素的平方和:
s = sum(sum(C .^ 2));
扩展资料
加法运算:两个矩阵的加是矩阵中对应的元素相加,相加的前提是:两个矩阵要是通行矩阵,即具有相同的行和列数。如:矩阵A=[1 2],B=[2 3] ,A+B=[1+2 2+3]=[3 5]。
减法运算:两个矩阵相减,跟加法类似。
乘法运算:两个矩阵要可以相乘,必须是A矩阵的列数B矩阵的行数相等,才可以进行乘法,矩阵乘法的原则是,A矩阵的第i行中的元素分别与B矩阵中的第j列中的元素相乘再求和,得到的结果就是新矩阵的第i行第j列的值。
除法运算:一般不说矩阵的除法。都是讲的矩阵求逆。
编写矩阵的加法运算程序。
先输入行数和列数
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i,j;
int row;
int col;
int **matrixA;
int **matrixB;
int **matrixC;
printf(“请输入矩阵的行数(row)和列数(col):”);
scanf(“%d%d”,&row,&col);
//给三个矩阵动态分配内存
matrixA = (int**)malloc(row*sizeof(int));
for (i=0; i<row; i++)
{
matrixA[i] = (int*)malloc(col*sizeof(int));
}
matrixB = (int**)malloc(row*sizeof(int));
for (i=0; i<row; i++)
{
matrixB[i] = (int*)malloc(col*sizeof(int));
}
matrixC = (int**)malloc(row*sizeof(int));
for (i=0; i<row; i++)
{
matrixC[i] = (int*)malloc(col*sizeof(int));
}
//A、B随机取值
for (i=0; i<row; i++)
{
for (j=0; j<col; j++)
{
matrixA[i][j] = rand()%100;
matrixB[i][j] = rand()%100;
}
}
printf(“matrixA:\n”);
for (i=0; i<row; i++)
{
for (j=0; j<col; j++)
{
printf(“%4d”, matrixA[i][j]);
}
printf(“\n”);
}
printf(“matrixB:\n”);
for (i=0; i<row; i++)
{
for (j=0; j<col; j++)
{
printf(“%4d”, matrixB[i][j]);
}
printf(“\n”);
}
//矩阵A、B相加
for (i=0; i<row; i++)
{
matrixC[i][j] = 0;
for (j=0; j<col; j++)
{
matrixC[i][j] = matrixA[i][j] + matrixB[i][j];
}
}
printf(“matrixC:\n”);
for (i=0; i<row; i++)
{
for (j=0; j<col; j++)
{
printf(“%4d”, matrixC[i][j]);
}
printf(“\n”);
}
//释放内存
free(matrixA);
free(matrixB);
free(matrixC);
return;
}
如果对你有所帮助,请记得采纳最佳答案,谢谢!