在MatLab中有没有类似于Unix“别名”的概念?
这个问题Is there a way to do command aliasing in matlab R2011b?建议定义匿名函数,并扩展答案,这些函数可以在启动时获得源代码,但这会导致函数句柄出现在工作区中,当清除时,它将消失。
有没有更健壮和Unix类似的解决方案?看起来这是一件非常有用的事情...
在MatLab中有没有类似于Unix“别名”的概念?
这个问题Is there a way to do command aliasing in matlab R2011b?建议定义匿名函数,并扩展答案,这些函数可以在启动时获得源代码,但这会导致函数句柄出现在工作区中,当清除时,它将消失。
有没有更健壮和Unix类似的解决方案?看起来这是一件非常有用的事情...
2条答案
按热度按时间slhcrj9b1#
我不知道你为什么要这么做,但是...
假设您愿意在PATH上有一个专门用于别名的目录,您可以在该目录中创建m个文件来运行这些别名。在这种情况下,工作区中将不存在别名。当然,您也可以自己编写别名文件,但下面的函数会自动为您创建别名。如果您尝试别名的函数/脚本当前不在搜索路径上,则该函数可能会被混淆。该函数并不是“完美的”,因为您不会编写
而是更确切地说
aydmsdu92#
是的,有一种方法。它被称为函数。您只需编写一个函数来执行您希望别名执行的任何操作。例如:
然后只需在命令行中输入
cdhome
,就像Unix外壳中的别名一样。请注意,MATLABUSERPATH
是我在startup.m
中定义的环境变量。可以更简单,只需保存一个名为cdhome.m
的脚本,其中包含以下内容:或者这样怎么样:
将其保存在名为
clean.m
的脚本文件中,然后只需将clean
而不是clc; clear; close all;
放在脚本的顶部不,它并不完全遵循Unix的想法,即在启动时执行的单个配置文件中有一堆别名。
但你也可以这么做。将您的所有别名放在一个开关块中,在一个函数中,将其命名为
alias
:对于自动完成,您可以通过您的外壳获得,将一个
functionSignatures.json
文件放在与alias.m
函数文件相同的文件夹中,并用您的别名填充它:然后,当您在命令行中键入
alias(...)
时,您将获得自动完成。但对我来说,拥有一个文件夹更容易,将其命名为
myaliases
,每个别名都有一个脚本或函数,并且您可以在命令行中自动完成,就像调用任何函数时一样(即,不需要键入alias(<somealias>)
)。