- 0
- 0
- 约1.59万字
- 约 20页
- 2019-06-16 发布于浙江
- 举报
矩阵混合运算
指导教师:
浙江理工大学
班级:
学号:
姓名:
矩阵混合运算
目 录
程序要求
输入输出范例
程序结构分析及关键函数说明
程序代码与说明
运行结果与分析
设计日志及心得体会
程序要求及范例
·定义矩阵(维数小于5×5)的加减法和乘法
·计算输入的若干矩阵的加减法运算和乘法混合运算
·矩阵数目不定,混合运算顺序不定,矩阵数值不定,均有键盘输入控制
·若输入有错,可以随时更改任一矩阵数值
·当输入矩阵不能满足矩阵运算时,提示矩阵维数错误
输入输出范例
·输入:
-首先输入每个矩阵的数值,输入矩阵格式如[1 1 1;2 2 2]
-输入几个矩阵的混合运算
·输出:
-输出计算结果
·输入范例:
A=[1 1 1;2 2 2]
B=[1 0;0 1;1 1]
C=[1 0;0 1]
D=C+A*B或者D=A*B+C
·输出
D=
3 2
4 5
三、程序结构分析及关键函数说明
1.加运算函数
在进行矩阵相加前要判断两矩阵是否能够相加,如果能就按照矩阵的相加方式进行运算,若不能则提示错误并返回,具体的程序段如下:
int addMatrix(Matrix *c, Matrix *a, Matrix *b)
{
int i, j;
if (a-rows != b-rows || a-cols != b-cols) // error to add
{
printf(矩阵维数输入错误!);
return 0;
}
else
{
c-rows = a-rows;
c-cols = a-cols;
for (i = 0; i c-rows; i++)
{
for (j = 0; j c-cols; j++)
{
c-data[i][j] = a-data[i][j] + b-data[i][j];
}
}
return 1;
}
}
2.减运算函数
在进行矩阵相减前要判断两矩阵是否能够相减,如果能就按照矩阵的相减方式进行运算,若不能则提示错误并返回,具体的程序段如下:
int subtractMatrix(Matrix *c, Matrix *a, Matrix *b)
{
int i, j;
if (a-rows != b-rows || a-cols != b-cols) // error
{
printf(矩阵维数输入错误!);
return 0;
}
else
{
c-rows = a-rows;
c-cols = a-cols;
for (i = 0; i c-rows; i++)
{
for (j = 0; j c-cols; j++)
{
c-data[i][j] = a-data[i][j] - b-data[i][j];
}
}
return 1;
}
}
3.乘运算函数
该程序设计的核心问题是矩阵的乘法运算的逻辑性的编写,在进行矩阵相乘前要判断两矩阵是否能够相乘,即判断内积是否相等,如果能就按照矩阵的相乘方式进行运算,若不能则提示错误并返回,具体的程序段如下:
int multiplyMatrix(Matrix *c, Matrix *a, Matrix *b)
{
int i, j, k;
if (a-cols != b-rows)
{
printf(矩阵维数输入错误!);
return 0;
}
else
{
c-rows = a-rows;
c-cols = b-cols;
for (i = 0; i c-rows; i++)
{
for (j = 0; j c-cols; j++)
{
c-data[i][j] = 0;
原创力文档

文档评论(0)