Ok so I have an operator* for left scalar matrix multiplication that is correctly outputting for the first 4 outputs and not for the next 4.
If I have a matrix M2 with inputs [1,2;3,4;5,6;7,8] (the semicolon means next column), and multiplying it by 4, then I am getting the output:
[4,8;12,16;0,0;17,17]
I have no idea why it is doing it for the first half and not the second, here is my code below. Help is much appreciated.
template <class T>
matrix<T> operator*(const T & lh,const matrix<T> & rh) {
matrix<T> result = rh;
for (int i=0;i<rh.rows();i++) { // .rows returns the number of rows
for (int j=0;j<rh.cols();j++) { // .cols returns the number of cols
result.item(j,i) = lh * rh.item(i,j); // item returns the item at (row,col)
} // j,i are switched here because otherwise it prints it incorrectly
}
return result;
}