Have fun with sci.dog

MATLAB翻译C#心得

  1. 必要的检查
  • 检查m代码内是否含有内置函数,如fft,fsolve,fmincon之类
  • 检查m代码的是否使用的cell
  • 检查m代码的向量和矩阵变量是否进行了初始化
  1. 矩阵的翻译方法

    向量翻译为一维数组,matlab的向量下标是从1开始,而C#是从0开始,笔者的做法是将C#数组的第1个元素和matlab向量的第一个元素对应,C#的第0个元素留空,值设为0。C#数组在初始化的时候,增加一个元素。

    即matlab的 a = zeros(m,1),C#翻译为double[] a = new double[m+1],matlab访问a的第i个元素为a(i),C#访问第i个元素为a[i].

    这种翻译方法的好处是不需要对大量的下表进行改动,翻译不容易出现错误。

  2. 循环的翻译方法 matlab的for循环为

    for i = 1:10  
    end
    

    C#可以翻译为

    for(i=1;i<=10,i++)
    {
    }
    

    这种翻译方法的好处是,C#代码不需要对i循环减1,同样避免了出错。

  3. 常量翻译

    C#中的double常量结尾要加.0或者d,如果不加,运输会出错。 如matlab里a = 1,C#要翻译为double a = 1.0 或者double a = 1d

    matlab里,

    a = 1/2+sin(1/3*pi)
    

    C#里要翻译为

    double a = 1.0/2.0 +Math.Sin(1.0/3.0 *Math.Pi)
    

赞(0)
未经允许不得转载:SciDog » MATLAB翻译C#心得

评论 抢沙发