矩阵置换与矩阵相乘
矩阵置换
vector<vector<float>> MainWindow::transpose(vector<vector<float>>& A)
{
if(A.empty())
return A;
float rows=A.size(),cols=A[0].size();
vector<float> temp(rows,0);
vector<vector<float>> res(cols,temp);
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
res[j][i]=A[i][j];
}
}
return res;
}
矩阵相乘
float ** MainWindow::Matrix_multip(vector<vector<float>>& A,vector<vector<float>>& B)
{
int rows = A.size();
int cols = B[0].size();
float** sum;
sum = new float *[rows];
for(int i = 0; i < rows; i ++)
sum[i] = new float[cols];
if(A[0].size() != B.size())
{
return sum;
}
for(int i = 0; i<rows; i++)
{
for(int j = 0; j<A[0].size(); j++)
{
for(int k = 0; k<B[0].size(); k++)
{
sum[i][k] += A[i][j]*B[j][k];
}
}
}
return sum;
}