我正在努力做这个看似简单的功能。我无法弄清楚为什么这不起作用。
我的代码:
C = matrix(0 , dim(matrixA)[1] , dim(matrixB)[2] , TRUE )
mat_mult = function(matrixA, matrixB){
for ( ii in 1:dim(matrixA)[1] ) {
for ( jj in 1:dim(matrixB)[2] ) {
for (kk in 1:dim(matrixA)[2] ) {
C[ii,jj] = C[ii,jj] + matrixA[ii,kk]*matrixB[kk,jj]
}
}
}
}
我只想将两个矩阵相乘。有什么想法吗?
答案 0 :(得分:1)
您没有声明矩阵c:
mat_mult = function(matrixA, matrixB){
c = matrix(0 , dim(matrixA)[1] , dim(matrixB)[2] , TRUE ) #This line
for ( ii in 1:dim(matrixA)[1] ) {
for ( jj in 1:dim(matrixB)[2] ) {
for (kk in 1:dim(matrixA)[2] ) {
c[ii,jj] = c[ii,jj] + matrixA[ii,kk]*matrixB[kk,jj]
}
}
}
return (c)
}
希望它有所帮助。
答案 1 :(得分:1)
你的错误:
另外,你最好修复可怕的缩进和不一致的间距,而不是dim(x)[1]和dim(x)[2]更好地使用nrow(x)和ncol(x)