【发布时间】:2019-06-02 09:07:26
【问题描述】:
我需要一个函数来检查是否可以将两个矩阵相乘。 在其中,我应该检查矩阵是否相同维度,如果不是,则函数返回-1,否则返回1。稍后,下面的函数将矩阵相乘并返回先前声明的**矩阵。
//function prototype
double** matrixMultiply(double** M1, int r1, int c1, double** M2, int r2, int c2);
//我需要检查M1和M2的行数和列数是否相同,但我不知道如何
double** matrixElementwiseMultiply(double** M1, double** M2, int rows, int columns)
错误信息应该是-1,否则函数应该继续。我会使用一个标志。
【问题讨论】:
-
只有当
r1 == r2 && c1 == c2时,它们才具有相同的尺寸。你在执行这个条件时可能会遇到什么问题??? -
我的错,我忽略了这一点。但是,在其他函数中没有定义维度,例如: double** matrixAdd(double** M1, double** M2, int rows, int columns);如何在这里检查矩阵的维度是否相同?
-
实际上乘法应该是 r1 == c2 && r2 == c1 但仍然很简单:)
-
@OznOg:我知道,但这家伙写的是“相同的尺寸”...
-
@Pers:你应该从调用函数传递维度。
标签: c function matrix dimensions