MATLAB:在MATLAB中保存不同版本的程序

时间:2014-08-13 22:53:27

标签: matlab function version-control

我正在使用MATLAB开展一个项目,项目的功能和结构可能需要在接下来的步骤中进行更改,但有时一个以前版本的程序(可能会被覆盖)可能比后者更好那些。 因为MATLAB要求使用自己的名称保存函数来更改函数名称并记住版本有点烦人。 有没有办法保存函数的所有版本以进一步返回?

2 个答案:

答案 0 :(得分:5)

我认为科学程序员应该使用像Subversion和Git这样的源代码管理系统。保留输入和数据的版本,以便您可以随意重新创建结果。

当我以有限元分析为生时,我从未意识到这种做法。如果我现在要回到它,我肯定会将所有代码和输入文件保存在Git中。

答案 1 :(得分:1)

我过去经常使用这个技巧,但最近我发现这可能会使代码速度变慢。

在主脚本中说你需要一个名为foo的函数 -

y = foo(5);

....你有foo的两个版本:

function y = foo_v1(x)
    y = x+1;
end

function y = foo_v2(x)
    y = x+2;
end

诀窍是,在主脚本的开头创建一个函数句柄。

useversion = 'v1';
switch useversion
    case 'v1'
        foo = @foo_v1;
    case 'v2'
        foo = @foo_v2;
end

y = foo(5);

要协调大量功能,请考虑使用str2func

每次要更改要使用的版本时,唯一需要更改的是字符串变量useversion


但是功能句柄肯定会减慢代码的速度,显着。如果这是一个严重的重型项目,我会建议git