728x90
반응형
728x170
▶ Program.cs
using System;
using System.Collections.Generic;
using System.Drawing.Drawing2D;
using System.Threading.Tasks;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 매트릭스 값 표시하기 - DisplayMatrixValue(elementArray)
/// <summary>
/// 매트릭스 값 표시하기
/// </summary>
/// <param name="elementArray">요소 배열</param>
private static void DisplayMatrixValue(float[] elementArray)
{
for(int i = 0; i < elementArray.Length; i++)
{
float element = elementArray[i] == -0f ? 0f : elementArray[i];
Console.Write(element);
if(i < elementArray.Length - 1)
{
Console.Write(" ");
}
}
Console.WriteLine();
}
#endregion
#region 역행렬 구하기 - InvertMatrix(list)
/// <summary>
/// 역행렬 구하기
/// </summary>
/// <param name="list">매트릭스 리스트</param>
private static void InvertMatrix(List<Matrix> list)
{
Parallel.ForEach
(
list,
(matrix, state) =>
{
if(!matrix.IsInvertible)
{
Console.WriteLine("역행렬을 구할 수 없습니다.");
state.Stop();
}
else
{
matrix.Invert();
}
}
);
}
#endregion
#region 프로그램 시작하기 - Mani()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
List<Matrix> list = new List<Matrix>();
list.Add(new Matrix(1f, 0f, 1f, 0f, 0f, 0f));
list.Add(new Matrix(1f, 0f, 1f, 0f, 0f, 0f));
list.Add(new Matrix(1f, 0f, 1f, 0f, 1f, 0f));
list.Add(new Matrix(1f, 0f, 1f, 0f, 1f, 1f));
InvertMatrix(list);
foreach(Matrix matrix in list)
{
DisplayMatrixValue(matrix.Elements);
}
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
댓글을 달아 주세요