亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? matrix.cs

?? C#矩陣運算類
?? CS
?? 第 1 頁 / 共 2 頁
字號:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace NumericRcipes
{
    public sealed class NRVec//向量類定義
    {
        private int n;
        private double[] data;

        public int Rows { get { return n; } }
        public double this[int i] { get { return data[i]; } set { data[i] = value; } }
        public NRVec() { }//構造空向量
        public NRVec(int nn) { n = nn; data = new double[n]; }//構造一個長度為nn的向量
        public NRVec(double a, int nn)//構造一個長度為nn,元素為a的向量
        {
            n = nn; data = new double[n];
            for (int i = 0; i < n; i++) data[i] = a;
        }
        public NRVec(double[] a)//由一維數組構造一個向量
        {
            n = a.GetLength(0);
            data = new double[n];
            a.CopyTo(data, 0);
        }
        public NRVec(NRVec rhs)//復制rhs向量
        {
            n = rhs.n;
            data = new double[n];
            rhs.data.CopyTo(data, 0);
        }
        public override string ToString()//向量的字符串輸出
        {
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < n; i++)
                sb.AppendFormat("{0:F4}\n", data[i]);
            return sb.ToString();
        }
        public void AssignTo(NRVec vec)//將向量賦值給vec
        {
            vec.n = n;
            vec.data = new double[vec.n];
            data.CopyTo(vec.data, 0);
        }
        public void AssignFrom(double a)//將a賦給向量的每個元素
        {
            for (int i = 0; i < n; i++) data[i] = a;
        }
        public static explicit operator double[](NRVec vec)//顯示轉換向量為一維數組
        {
            double[] result = new double[vec.n];
            vec.data.CopyTo(result, 0);
            return result;
        }
        public static explicit operator NRVec(double[] array)//顯示轉換一維數組為向量
        {
            NRVec result = new NRVec(array);
            return result;
        }
    }
    public sealed class NRMatrix : Object //矩陣類的定義
    {
        #region 矩陣的數據成員
        int rows;                            //記錄矩陣的行數
        int cols;                              //記錄矩陣的列數
        double[,] data;                     //矩陣元素的存儲數組
        public int Rows                 //獲取矩陣的行數
        {
            get { return rows; }
        }
        public int Cols                   //獲取矩陣的列數
        {
            get { return cols; }
        }
        public double this[int i, int j]//獲取和設置矩陣第i行第j列的元素
        {

            get
            {
                if (i >= rows || j >= cols || i < 0 || j < 0)
                    throw (new NRException("行標或列標越界,不能獲取元素!"));
                return data[i, j];
            }
            set
            {
                if (i >= rows || j >= cols || i < 0 || j < 0)
                    throw (new NRException("行標或列標越界,不能設置元素!"));
                data[i, j] = value;
            }
        }
        #endregion
        #region 矩陣的構造函數
        public NRMatrix() { }//構造空矩陣
        public NRMatrix(int rows, int cols)    //構造一個rows×cols的零矩陣
        {
            if (rows <= 0 || cols <= 0) throw (new NRException("不能生成少于1行1列的矩陣!"));
            this.rows = rows; this.cols = cols;
            data = new double[rows, cols];
        }
        public NRMatrix(double[,] a)//二維數組構造矩陣
        {
            rows = a.GetLength(0);
            cols = a.GetLength(1);
            data = new double[rows, cols];
            for (int i = 0; i < rows; i++)
                for (int j = 0; j < cols; j++)
                    data[i, j] = a[i, j];
        }
        public NRMatrix(NRVec vec)//由向量vec生成對角矩陣
        {
            rows = vec.Rows;
            cols = rows;
            data = new double[rows, cols];
            for (int i = 0; i < rows; i++)
                data[i, i] = vec[i];
        }
        public NRMatrix(NRMatrix a)//復制a矩陣
        {
            rows = a.rows;
            cols = a.cols;
            data = new double[rows, cols];
            for (int i = 0; i < rows; i++)
                for (int j = 0; j < cols; j++)
                    data[i, j] = a[i, j];
        }
        #endregion
        public void AssignTo(NRMatrix mat)//將矩陣賦值給矩陣mat
        {
            mat.rows = rows;
            mat.cols = cols;
            mat.data = new double[mat.rows, mat.cols];
            for (int i = 0; i < mat.rows; i++)
                for (int j = 0; j < mat.cols; j++)
                    mat.data[i, j] = data[i, j];
        }
        public override string ToString()  //矩陣的字符串輸出
        {
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < rows; i++)
            {
                for (int j = 0; j < cols; j++)
                    sb.AppendFormat("{0:F4}\t", data[i, j]);
                sb.AppendFormat("\r\n");
            }
            return sb.ToString();
        }
        #region 矩陣基本運算符重載
        public override bool Equals(object o)  //重載Equals,矩陣相等的比較
        {
            // 在處理之前確認調用對象object是矩陣。
            if (o != null && o is NRMatrix)
            {

                if (rows == ((NRMatrix)o).rows && cols == ((NRMatrix)o).cols)
                {
                    for (int i = 0; i < rows; i++)
                        for (int j = 0; j < cols; j++)
                            if (this[i, j] != ((NRMatrix)o)[i, j]) return false;
                    return true;
                }
                else
                    return false;
            }
            return false;
        }
        public static bool operator ==(NRMatrix mat1, NRMatrix mat2)        //矩陣相等的比較
        {
            return mat1.Equals(mat2);
        }
        public override int GetHashCode()
        {
            return this.ToString().GetHashCode();
        }
        public static bool operator !=(NRMatrix mat1, NRMatrix mat2)        //矩陣不等的比較
        {
            return !mat1.Equals(mat2);
        }
        public static NRMatrix operator +(NRMatrix mat1, NRMatrix mat2)     //矩陣的加法運算
        {
            if (mat1.rows != mat2.rows || mat1.cols != mat2.cols)
                throw (new NRException("矩陣不同型,不能作加法!"));
            NRMatrix result = new NRMatrix(mat1.rows, mat1.cols);
            for (int i = 0; i < mat1.rows; i++)
                for (int j = 0; j < mat1.cols; j++)
                    result[i, j] = mat1[i, j] + mat2[i, j];
            return result;
        }
        public static NRMatrix operator -(NRMatrix mat1, NRMatrix mat2)     //矩陣的減法運算
        {
            if (mat1.rows != mat2.rows || mat1.cols != mat2.cols)
                throw (new NRException("矩陣不同型,不能作減法!"));
            NRMatrix result = new NRMatrix(mat1.rows, mat1.cols);
            for (int i = 0; i < mat1.rows; i++)
                for (int j = 0; j < mat1.cols; j++)
                    result[i, j] = mat1[i, j] - mat2[i, j];
            return result;
        }
        public static NRMatrix operator *(NRMatrix mat1, NRMatrix mat2)  //矩陣的乘積運算
        {
            if (mat1.cols != mat2.rows) throw (new NRException("矩陣不相容,不能作矩陣乘法!"));
            int M = mat1.rows, N = mat2.cols;
            NRMatrix result = new NRMatrix(M, N);
            for (int i = 0; i < M; i++)
                for (int j = 0; j < N; j++)
                {
                    double sum = 0.0;
                    for (int k = 0; k < mat1.cols; k++)
                        sum += mat1[i, k] * mat2[k, j];
                    result[i, j] = sum;
                }
            return result;
        }
        public static NRMatrix operator *(double k, NRMatrix mat)  //矩陣的數乘運算
        {
            NRMatrix result = new NRMatrix(mat.rows, mat.cols);
            for (int i = 0; i < mat.rows; i++)
                for (int j = 0; j < mat.cols; j++)
                    result[i, j] = k * mat[i, j];
            return result;
        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩不卡在线观看日韩不卡视频| 精品一区二区三区在线播放视频| 亚洲国产成人高清精品| 美女视频黄免费的久久| 亚洲摸摸操操av| 毛片av一区二区三区| 中日韩av电影| 亚洲成人免费视| 久久久国产一区二区三区四区小说| 欧美一区二区三区电影| 亚洲日本一区二区| 韩国av一区二区三区在线观看| 在线影视一区二区三区| 国产精品美女久久久久av爽李琼 | 日韩欧美在线影院| 中文字幕一区日韩精品欧美| 精品一区二区在线看| 911精品产国品一二三产区 | 国产精品高潮呻吟久久| 黄色小说综合网站| 欧美日韩中字一区| 91黄色激情网站| 一本大道av一区二区在线播放| 欧美va在线播放| 男男gaygay亚洲| 欧美日韩精品一区二区三区四区| 亚洲免费观看在线观看| 99久久久国产精品| 中文字幕一区免费在线观看| 成人app网站| 国产精品美女久久久久久| 成人免费视频免费观看| 欧美激情在线观看视频免费| 国产成人午夜精品5599| 国产视频在线观看一区二区三区| 韩国成人在线视频| 国产欧美综合色| 国产99久久久国产精品免费看 | 国产亚洲欧美激情| 精品一区二区在线播放| 国产无一区二区| 国产黄人亚洲片| 国产精品视频观看| 91麻豆蜜桃一区二区三区| 玉米视频成人免费看| 欧美性色黄大片| 日日欢夜夜爽一区| 国产在线观看一区二区| 国产午夜精品福利| 欧洲生活片亚洲生活在线观看| 亚洲一区二区三区精品在线| 在线播放中文一区| 精品亚洲成av人在线观看| 中国色在线观看另类| 欧美综合亚洲图片综合区| 日韩av午夜在线观看| 久久亚洲精品国产精品紫薇| 成人国产在线观看| 性做久久久久久免费观看| 欧美电影免费提供在线观看| 久久精品国产**网站演员| 久久亚洲精品小早川怜子| 91麻豆.com| 日本午夜一本久久久综合| 久久久久久一级片| 欧洲精品在线观看| 久久69国产一区二区蜜臀| 中文字幕免费不卡在线| 欧美日韩国产三级| 国产成人免费视频精品含羞草妖精 | 日本亚洲三级在线| 精品捆绑美女sm三区| 99国产欧美久久久精品| 欧美aaaaaa午夜精品| 久久亚洲综合色| 欧美日韩视频专区在线播放| 国产成人高清在线| 天天亚洲美女在线视频| 国产精品色噜噜| 日韩一级大片在线| av中文字幕在线不卡| 麻豆中文一区二区| 亚洲国产三级在线| 国产精品福利在线播放| 日韩一区二区免费在线电影| 色婷婷av一区二区三区大白胸| 人人狠狠综合久久亚洲| 伊人色综合久久天天人手人婷| 久久亚洲一区二区三区四区| 欧美裸体一区二区三区| 色综合夜色一区| 福利一区在线观看| 捆绑调教一区二区三区| 亚洲国产另类精品专区| 国产片一区二区三区| 日韩欧美国产精品| 在线播放国产精品二区一二区四区 | 亚洲小说欧美激情另类| 国产精品另类一区| 精品国产凹凸成av人网站| 欧美四级电影网| 91久久线看在观草草青青 | 亚洲欧美视频在线观看视频| 欧洲精品视频在线观看| 精品一区二区免费在线观看| 日韩avvvv在线播放| 亚洲午夜在线电影| 亚洲自拍偷拍欧美| 91网站最新网址| 色噜噜狠狠色综合中国| 美腿丝袜亚洲综合| 成人激情电影免费在线观看| 黑人巨大精品欧美黑白配亚洲| 青草av.久久免费一区| 婷婷开心久久网| 天天综合色天天| 日韩高清不卡一区二区三区| 日韩精品一二三区| 蜜乳av一区二区| 久久99国产精品久久99| 国产夫妻精品视频| 成人丝袜高跟foot| 亚洲美女视频在线观看| 樱桃视频在线观看一区| 亚洲无线码一区二区三区| 午夜国产精品影院在线观看| 日本vs亚洲vs韩国一区三区 | 日韩专区欧美专区| 奇米精品一区二区三区在线观看| 奇米影视7777精品一区二区| 精品夜夜嗨av一区二区三区| 国产乱人伦偷精品视频免下载| 国产一区91精品张津瑜| 国产成人亚洲综合色影视| 成人va在线观看| 欧美在线视频日韩| 91精品国产福利| 国产亚洲短视频| 中文字幕永久在线不卡| 在线播放视频一区| 国产精品一线二线三线精华| 国产一区二区在线视频| 99亚偷拍自图区亚洲| 欧美三级日韩三级| 久久影院午夜论| 亚洲免费观看高清完整版在线| 午夜国产不卡在线观看视频| 精品一区二区三区久久| 99视频一区二区| 91精品啪在线观看国产60岁| 国产亚洲欧美一级| 一级特黄大欧美久久久| 欧美大片免费久久精品三p | 国产精品一区二区三区网站| www.亚洲国产| 日韩欧美一二三| 国产精品日韩成人| 日韩中文欧美在线| www.久久精品| 日韩欧美国产1| 日韩理论片一区二区| 美女尤物国产一区| 成人sese在线| 日韩亚洲欧美综合| 国产精品午夜在线观看| 久久综合九色综合97婷婷女人 | 在线观看国产91| 久久精品亚洲乱码伦伦中文| 亚洲国产精品天堂| 国产精品综合在线视频| 7777精品伊人久久久大香线蕉的 | 成人av在线播放网址| 欧美精品色一区二区三区| 国产精品国产三级国产aⅴ中文 | 一本一本大道香蕉久在线精品| 日韩一区二区三区在线视频| 一区二区三区中文在线观看| 国产91露脸合集magnet| 精品国产乱码久久久久久老虎| 一区二区免费在线| 成人综合在线观看| 欧美午夜电影一区| 最新日韩av在线| 成人av资源下载| 欧美大片一区二区| 天天av天天翘天天综合网色鬼国产 | 亚洲国产精品黑人久久久| 男女男精品视频网| 欧美一区二区三区四区视频| 一级做a爱片久久| 欧美在线视频你懂得| 一区二区三区精品视频在线| 91蜜桃传媒精品久久久一区二区| 久久精品亚洲麻豆av一区二区 | www.在线成人| 中文一区在线播放| 国产精品996| 中文字幕的久久| 99久久婷婷国产| 亚洲另类一区二区|