matrix - 乘法矩阵
问题描述
我写了一个矩阵类,乘法有问题。我只想乘方阵,不知道如何处理。有人可以帮忙吗?下面的一些代码:
//mSize - matrix size, mP - matrix pointer
int mSize, *mP;
//constructor
matrix(){
mP = NULL;
mSize = 0;
}
matrix operator*(const matrix & mat){
matrix mul;
mul.mSize = mat.mSize;
mul.mP = new int[mul.mSize * mul.mSize];
if(mSize == mat.mSize){
for(int i = 0; i < mul.mSize * mul.mSize; i++){
for(int j = 0; j < mul.mSize * mul.mSize; j++){
for(int k = 0; k < mul.mSize * mul.mSize; k++){
mul.mP[i*j] += mP[i*k] * mat.mP[k*j]; <-- that line is not good but I don't know if only that
}
}
}
}else {
cout << "error";
exit(-1);
}
return mul;
}
解决方案
def matrixmulti(a,b):
if len(a[0])==len(b): #check it
result=[[]*len(a) for i in range(len(b))] #create empty matrix
value=0
for i in range(len(a)): #row of the a
for j in range(len(b[0])): #column of the b
for k in range(len(b)): #row of the b
value+=a[i][k]*b[k][j]
result[i].append(value)
value=0
return result
else:
return False
a=[[1,2],
[3,4]]
b=[[5,6],
[7,8]]
print(matrixmulti(a,b))
这是一个python代码,如果不是方阵,它就会出错。我希望它能解决你的问题。我希望你能理解代码。
推荐阅读
- amazon-web-services - Amazon EC2 Spot 实例在终止后继续启动
- python - 代码导致没有列标题,但我想添加“总销售额”
- android - 列表中的 setContentView (Kotlin)
- android - Android BiometricPrompt on AuthenicationSucceeded 不起作用
- c++ - 如何在不混淆字段的情况下声明复数?
- python - 如何将数据帧内的总行分成相等的桶到另一个数据帧
- r - 是否有解决 X 或 Y 方程的代码/函数?
- python - 从 PDF 中提取文本时如何删除标题?
- rust - 我必须编写迭代器的整个类型吗?
- clojure - 遍历地图并获取堆栈溢出错误clojure