Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MatlabR2011B中有没有一种方法可以实现命令别名?_Matlab - Fatal编程技术网

在MatlabR2011B中有没有一种方法可以实现命令别名?

在MatlabR2011B中有没有一种方法可以实现命令别名?,matlab,Matlab,我对Matlab比较陌生。 我正在尝试为如下所示的命令创建别名 run('full/path/to/some/script'). 特别是,我希望能够写一些与Bash相当的东西 alias myAlias = run('full/path/to/some/script') 然后可以键入myAlias,并获得与右侧相同的效果 我已经看过文档,但是当我尝试使用它时,仍然会出现错误未定义的函数或变量'alias',即使在我第一次在提示符下键入syms,因此我认为要么我没有正确导入工具箱,要么这不是R

我对Matlab比较陌生。 我正在尝试为如下所示的命令创建别名

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
的输出不用于此目的。