コード例 #1
0
GeneralMatrix GeneralMatrix::operator * (const GeneralMatrix& other) const
{
	int i,j,k;
	
	GeneralMatrix result(this->nRow(),other.nCol());
	
	if(other.nRow()!=this->nCol())
	{
		for (i=0;i<result.nRow();i++)
			for (j=0;j<result.nCol();j++)
				result.GetElemP(i,j)->val = ERRORVAL;
			return result;
	}
	
    for (i=0;i<this->nRow();i++)       //矩阵相乘的计算
	{
		for(j=0;j<other.nCol();j++)
		{
			for(k = 0; k < other.nRow(); k++)
			{
				if ((this->GetElem(i,k)!=0)&&(other.GetElem(k,j)!=0))
				{
					result[i][j] += this->GetElem(i,k) * other.GetElem(k,j); 
				}
			}
		}
	}
	
return result;
}
コード例 #2
0
//////////////////////////////////////////////////////////////////////
// 重载运算符==,判断矩阵是否相等
//
// 参数:
// 1. const GeneralMatrix& other - 用于比较的矩阵
//
// 返回值:BOOL 型,两个矩阵相等则为TRUE,否则为FALSE
//////////////////////////////////////////////////////////////////////
bool GeneralMatrix::operator==(const GeneralMatrix& other) const
{
	// 首先检查行列数是否相等
	if (this->nCol() != other.nCol() || this->nRow() != other.nRow())
		return FALSE;

	for (int i=0; i<nRow(); ++i)
	{
		for (int j=0; j<nCol(); ++j)
		{
			if (this->GetElem(i,j)!=other.GetElem(i,j))
				return FALSE;
		}
	}

	return TRUE;
}