在MatlabR2011B中有没有一种方法可以实现命令别名?
我对Matlab比较陌生。 我正在尝试为如下所示的命令创建别名在MatlabR2011B中有没有一种方法可以实现命令别名?,matlab,Matlab,我对Matlab比较陌生。 我正在尝试为如下所示的命令创建别名 run('full/path/to/some/script'). 特别是,我希望能够写一些与Bash相当的东西 alias myAlias = run('full/path/to/some/script') 然后可以键入myAlias,并获得与右侧相同的效果 我已经看过文档,但是当我尝试使用它时,仍然会出现错误未定义的函数或变量'alias',即使在我第一次在提示符下键入syms,因此我认为要么我没有正确导入工具箱,要么这不是R
run('full/path/to/some/script').
特别是,我希望能够写一些与Bash相当的东西
alias myAlias = run('full/path/to/some/script')
然后可以键入myAlias
,并获得与右侧相同的效果
我已经看过文档,但是当我尝试使用它时,仍然会出现错误未定义的函数或变量'alias'
,即使在我第一次在提示符下键入syms
,因此我认为要么我没有正确导入工具箱,要么这不是R2011b中的功能
另外一个要求是,我希望别名即使在我调用clear
后仍保持不变,这将清除工作区中的所有其他活动变量。例如:
f = @() run('foldername\scriptname')
然后只要写f()
就会执行scriptname
。
在这里,我使用了一个匿名函数,如果需要,您可以向其中添加更多内容。您可以通过将@natan的答案设置为m文件来清除工作区。 在
myAlias.m
中,将run('full/path/to/some/script')
。我相信您知道这个解决方案,但您可能不想这样做,因为这样会导致文件系统混乱
您只需将m文件添加到某个文件夹,然后使用
addpath('where/ever/You/put/the/script')
使其可访问。这是一个可怕的解决方案,请避免使用eval
。如果想要匿名函数,至少要运行('path/to/script')。此外,解决方案将无法满足不被清除删除的要求。当然!只要运行(…)
就可以了,无疑更优雅。我将编辑我的答案。但是一般来说,为什么eval
是一个可怕的解决方案?在这种情况下,可怕可能不是正确的措辞,因为命令是一个静态字符串,也就是说,它是安全的,但一般来说,如果您发现自己在Matlab中使用eval
,则可能是以错误的方式解决了问题。因此,关于使用eval
有很多讨论,如果您感兴趣,请查阅。要获得一些Matlab乐趣,请查看符号工具箱中的str2num('system('dir'))
alias
的输出不用于此目的。