【C#】 4. NumericMatrix类型(包含矩阵运算)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UserDefinedDataEXP
{
    class NumericMatrix<T>:Matrix<T>
    {
        // Constructors
        public NumericMatrix(): base()
        {
        }
        public NumericMatrix(int rows, int columns): base(rows, columns)
        {
        }
        public NumericMatrix(int rows, int columns, int rowstart, int columnstart) :base(rows, columns, rowstart, columnstart)
        {
        }
        public NumericMatrix(NumericMatrix<T> source): base(source)
        {
        }
        public NumericMatrix(Array<T> array, int rowstart, int columnstart) :base(array, rowstart, columnstart)
        {
        }

        // + 运算符
        #region ADD OPERATION
        //委托BinaryOperatorT<T, T, T> addTT
        private static BinaryOperatorT<T, T, T> addTT;

        //矩阵加法实现1:NumericMatrix<T> v1,NumericMatrix<T> v2
        public static NumericMatrix<T> operator +(NumericMatrix<T> v1, NumericMatrix<T> v2)
        {
            NumericMatrix<T> result = new NumericMatrix<T>(v1.Rows,v1.Columns,v1.MinRowIndex,v1.MinColumnIndex);
            int rdelta = v2.MinRowIndex - v1.MinRowIndex;
            int cdelta = v2.MinColumnIndex - v1.MinColumnIndex;
            
            if (addTT == null)
            {
                addTT = new BinaryOperatorT<T, T, T>(GenericOperatorFactory<T, T, T, NumericMatrix<T>>.Add);
            }
            for (int i = v1.MinRowIndex; i <= v1.MaxRowIndex; i++)
            {
                for (int j =  v1.MinColumnIndex; j <= v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值