我需要在MATLAB(作业)中实现几个算法,但我想GNU Octave改用.但我想关闭任何octave扩展,基本上把它变成FOSS版本MATLAB.我应该更改哪些设置?执行octave程序时我应该提供哪些命令行选项?
PS:我知道--traditional命令行选项,虽然它似乎没有做太多.
PPS:欢迎任何建议.如果按照你的建议要求,例如,octave从源代码重建,那就让它成为.
除了使用--traditional选项,你无能为力.只是不要使用Octave提供的额外语法.毕竟,Matlab语法是GNU Octave语言的一个子集,因此您只能使用该子集.
编辑:这不是你想要的答案,但有一个很好的理由,为什么这是一个不可能完成的任务(不可能,我的意思是非常困难.唯一的选择是真正只是分叉Octave并改变它直到它是一个确切的克隆.你不要我不想这样做,相信我.想象一下以下的例子.Octave有函数'rows'和'columns',但Matlab没有.如果您更改Octave以便这些功能不再存在,那么使用它们的所有其他Octave函数(我猜很多)也将停止工作.
其他人在你成功说服他们的教授接受用Octave编写的作业之前,只要确保你至少尝试编写兼容的代码.
编辑2:我将尝试通过比较这种情况与钢琴来解释(似乎是一个非常好的比较).您可以购买85或88键的钢琴.现在想象Matlab是一把85键的钢琴,而Octave是一把88键的钢琴(如果你想,也可以想象Matlab有3个踏板,而Octave只有2个踏板).两支钢琴之间的唯一区别是,一支钢琴的音调范围略大,即它可以播放更多的音调(来自3个额外的键).但是当你用一把85键的钢琴演奏C4时,用一把88键的钢琴演奏一把C4,声音是一样的,它们是相同的音符.注释是您可以使用的功能和关键字.他们是一样的.一支钢琴中的音符在另一支钢琴上是相同的音符.
现在,如果你是一位写作音乐的作曲家,你可能会考虑这一点.只是不要写任何需要这些额外键的音乐.两种钢琴的音乐都是相同的.如果你有一把88键的钢琴,你就不会砍掉3把额外的琴键,因为你希望它能与85键钢琴兼容.你根本就不玩那些钥匙.88键的钢琴与85键的钢琴兼容,与Octave与Matlab兼容的方式相同.
如果你想要一个指南提醒你不能使用这些额外的钥匙,我猜你可以在它们上放一些繁文缛节以提醒你不要使用它们.类似地,使用带有文本编辑器的Octave,该编辑器对Octave和Matlab具有不同的语法高亮,因此当您使用不属于Matlab的语法时,它会突出显示不正确.除此之外,您无能为力(除非您计算要求Octave项目,请求Mathworks在Matlab中实现它们或自己实现它们.我不是说这是粗鲁的讽刺,只是试图详尽无遗).
为了完成,是的,Octave尚未实现所有Matlab的东西,但随着人们开发它,它正在这样移动.它不是一个静态项目(例如,只需查看开发分支的NEWS文件),就可以根据需要开发它们的人来实现.并且一些函数的行为有所不同,但这些是您可以报告的错误(甚至可以解决,因为它毕竟是免费和开源的).这种不兼容性不是为了烦扰用户.他们在那里,因为没有人报告或修复它们.此外,大多数是针对错误或未记录的Matlab功能.
编辑3:您还可以打开matlab不兼容的警告(默认情况下是关闭的).跑warning ('on', 'Octave:matlab-incompatible').您可以将其保留在您的.octaverc文件中.要查看更多警告warning_ids.