C#实现矩阵加法、取负、数乘、乘法的方法实现矩阵加法、取负、数乘、乘法的方法
本文实例讲述了C#实现矩阵加法、取负、数乘、乘法的方法。分享给大家供大家参考。具体如下:
1.几个基本函数
1)判断一个二维数组是否为矩阵:如果每行的列数都相等则是矩阵,没有元素的二维数组是矩阵
/// <summary>
/// 判断一个二维数组是否为矩阵
/// </summary>
/// <param name="matrix">二维数组</param>
/// <returns>true:是矩阵 false:不是矩阵</returns>
private static bool isMatrix(double[][] matrix)
{
//空矩阵是矩阵
if (matrix.Length < 1) return true;
//不同行列数如果不相等,则不是矩阵
int count = matrix[0].Length;
for (int i = 1; i < matrix.Length; i++)
{
if (matrix[i].Length != count)
{
return false;
}
}
//各行列数相等,则是矩阵
return true;
}
2)计算一个矩阵的行数和列数:就是计算两个维度的Length属性
/// <summary>
/// 计算一个矩阵的行数和列数
/// </summary>
/// <param name="matrix">矩阵</param>
/// <returns>数组:行数、列数</returns>
private static int[] MatrixCR(double[][] matrix)
{
//接收到的参数不是矩阵则报异常
if (!isMatrix(matrix))
{
throw new Exception("接收到的参数不是矩阵");
}
//空矩阵行数列数都为0
if (!isMatrix(matrix) || matrix.Length == 0)
{
return new int[2] { 0, 0 };
}
return new int[2] { matrix.Length, matrix[0].Length };
}
3)向控制台打印矩阵:注意,如果前后都是两个char类型的量,则运算符+会把前后两个字符转化为整数相加,而不会将前
后字符视为字符串连接
/// <summary>
/// 打印矩阵
/// </summary>
/// <param name="matrix">待打印矩阵</param>
private static void PrintMatrix(double[][] matrix)
{
for (int i = 0; i < matrix.Length; i++)
{
for (int j = 0; j < matrix[i].Length; j++)
{
Console.Write(matrix[i][j] + " ");
//注意不能写为:Console.Write(matrix[i][j] + ' ');
}
Console.WriteLine();
}
}
2.矩阵加法