C#类库的使用

zhenghui2915 2009-10-11 08:19:16
各位朋友大家好,最近遇到了一个问题。我需要在C#里面进行一些矩阵运算,我在网上下载到了关于矩阵运算的代码,这些代码放置在一个*.cs文件中,如下所示:

using System;

namespace CSharpAlgorithm.Algorithm
{


public class Matrix
{
private int numColumns = 0; // 矩阵列数
private int numRows = 0; // 矩阵行数
private double eps = 0.0; // 缺省精度
private double[] elements = null; // 矩阵数据缓冲区

/**
* 属性: 矩阵列数
*/
public int Columns
{
get
{
return numColumns;
}
}

/**
* 属性: 矩阵行数
*/
public int Rows
{
get
{
return numRows;
}
}

/**
* 索引器: 访问矩阵元素
* @param row - 元素的行
* @param col - 元素的列
*/
public double this[int row, int col]
{
get
{
return elements[col + row * numColumns];
}
set
{
elements[col + row * numColumns] = value;
}
}
/**
* 基本构造函数
*/
public Matrix()
{
numColumns = 1;
numRows = 1;
Init(numRows, numColumns);
}

/**
* 指定行列构造函数
*
* @param nRows - 指定的矩阵行数
* @param nCols - 指定的矩阵列数
*/
public Matrix(int nRows, int nCols)
{
numRows = nRows;
numColumns = nCols;
Init(numRows, numColumns);
}

public Matrix Add(Matrix other)
{
// 首先检查行列数是否相等
if (numColumns != other.GetNumColumns() ||
numRows != other.GetNumRows())
throw new Exception("矩阵的行/列数不匹配。");

// 构造结果矩阵
Matrix result = new Matrix(this) ; // 拷贝构造

// 矩阵加法
for (int i = 0 ; i < numRows ; ++i)
{
for (int j = 0 ; j < numColumns; ++j)
result.SetElement(i, j, result.GetElement(i, j) + other.GetElement(i, j)) ;
}

return result ;
}

/**
* 实现矩阵的减法
*
* @param other - 与指定矩阵相减的矩阵
* @return Matrix型,指定矩阵与other相减之差
* @如果矩阵的行/列数不匹配,则会抛出异常
*/
public Matrix Subtract(Matrix other)
{
if (numColumns != other.GetNumColumns() ||
numRows != other.GetNumRows())
throw new Exception("矩阵的行/列数不匹配。");

// 构造结果矩阵
Matrix result = new Matrix(this) ; // 拷贝构造

// 进行减法操作
for (int i = 0 ; i < numRows ; ++i)
{
for (int j = 0 ; j < numColumns; ++j)
result.SetElement(i, j, result.GetElement(i, j) - other.GetElement(i, j)) ;
}

return result ;
}

/**
* 实现矩阵的数乘
*
* @param value - 与指定矩阵相乘的实数
* @return Matrix型,指定矩阵与value相乘之积
*/
public Matrix Multiply(double value)
{
// 构造目标矩阵
Matrix result = new Matrix(this) ; // copy ourselves

// 进行数乘
for (int i = 0 ; i < numRows ; ++i)
{
for (int j = 0 ; j < numColumns; ++j)
result.SetElement(i, j, result.GetElement(i, j) * value) ;
}

return result ;
}
..............................
}

现在我要使用这段其中的矩阵运算如加法,减法,乘法,除法等运算,我需要怎么才能使用。
有的方法是将这个*.cs 编译成dll,然后调用,这种方法应该是可以的。我想问一下还有什么其他的好方法没,谢谢大家。

...全文
434 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunkai572 2009-11-24
  • 打赏
  • 举报
回复
这段代码如何做成.dll文件啊?
为什么我拷贝到.cs文件中都有问题啊?
我姓区不姓区 2009-10-12
  • 打赏
  • 举报
回复
既然已经有cs文件了,把它加到你的项目中就可以啦
zhouxingyu896 2009-10-12
  • 打赏
  • 举报
回复
支持楼上的

直接点,不就是将代码复制到.cs文件中,将命名空间修改了
shuiwenyu 2009-10-12
  • 打赏
  • 举报
回复
把cs文件加到你的项目中,下来引用命名空间直接调用就可以了
guyehanxinlei 2009-10-12
  • 打赏
  • 举报
回复
直接将CS文件加入到项目中来,注意一下命名空间
hangang7403 2009-10-12
  • 打赏
  • 举报
回复
已经有类文件了,引用就很简单了,加入命名空间,实例化就行了
ginni215 2009-10-12
  • 打赏
  • 举报
回复
把命名空间改成你项目的,然后直接加到你的项目中,实例化应该就可以引用了~~
fengling2001 2009-10-12
  • 打赏
  • 举报
回复
直接加入到project,这样方便自己需要进行扩展
N_ccw 2009-10-11
  • 打赏
  • 举报
回复
生成DLL
在引用它,导入命名空间,使用类
wuyq11 2009-10-11
  • 打赏
  • 举报
回复
生成dll文件,再
using CSharpAlgorithm.Algorithm;
Matrix matrix =new Matrix();
十八道胡同 2009-10-11
  • 打赏
  • 举报
回复
我怎经也写过一个一个矩阵类,没这个写的好,。
我的做法是:就是把这个cs文件作为project的一个文件,你的程序和这个矩阵类在同一个namespace里,然后就就可以当类型使用了,类似
Matrix matrix =new Matrix()

110,577

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧