2013-03-22 59 views
1

我在Matlab上比较新。 我正在尝试为类似下面的命令创建一个别名。有没有办法在matlab R2011b中做命令别名?

run('full/path/to/some/script'). 

我特别希望能够写东西相当于bash的

alias myAlias = run('full/path/to/some/script') 

然后可以输入myAlias并获得尽可能右侧同样的效果。

我已经看过的文件here,但我仍然得到错误Undefined function or variable 'alias'当我尝试使用它,即使我在提示符下第一类syms,所以我相信,要么我没有正确导入工具箱或本在R2011b中不是一项功能。

一个额外的要求是,即使在我呼叫clear之后,我想要别名仍然保留,这应该清除工作区中的所有其他活动变量。

+0

来自符号工具箱的“别名”不是用于此目的。 – Memming 2013-03-22 14:16:16

回答

3

例如:

f = @() run('foldername\scriptname') 

然后就写f()将执行scriptname。 这里我使用了一个匿名函数,如果需要的话可以添加更多内容。

+1

这是一个可怕的解决方案,避免使用'eval'。如果你想要一个匿名函数,至少应该执行'f = @()run('path/to/script')'。此外,该解决方案不能满足不被“clear”清除的要求。当然是 – erikced 2013-03-22 08:23:08

+1

!只是'跑(...)'会做,更优雅毫无疑问。我会编辑我的答案。但总的来说,为什么“eval”是一个可怕的**解决方案? – bla 2013-03-22 08:26:25

+4

在这种情况下**可怕**可能不是正确的措辞,因为命令是一个静态字符串,也就是说它是安全的,但是一般情况下,如果你发现自己在Matlab中使用'eval',你可能解决了你的问题办法。 SO有很多关于使用'eval'的讨论,如果您有兴趣,请查看它们。对于某些Matlab趣味性,请查看'str2num('system(''dir'')')'的输出 – erikced 2013-03-22 08:44:32

0

你可以让@ natan的答案容忍清除工作区,使其成为一个m文件。 在myAlias.m中,放入run('full/path/to/some/script')。我相信你知道这个解决方案,但你可能不想这样做,因为由此产生的凌乱的文件系统。

您可以简单地将m文件添加到某个文件夹并使用addpath('where/ever/you/put/the/script')使其可访问。

相关问题