Matlab中是否有与Unix“别名”类似的概念?
这个问题有没有办法在matlab R2011b中做命令别名?建议定义匿名函数,并扩展这些可以在启动时获取的答案,但这会导致函数句柄出现在工作区中,清除后会消失。
有没有更健壮和 Unix 类似的解决方案?能够做到这一点似乎是一件非常有用的事情......
Matlab中是否有与Unix“别名”类似的概念?
这个问题有没有办法在matlab R2011b中做命令别名?建议定义匿名函数,并扩展这些可以在启动时获取的答案,但这会导致函数句柄出现在工作区中,清除后会消失。
有没有更健壮和 Unix 类似的解决方案?能够做到这一点似乎是一件非常有用的事情......
我不确定您为什么要这样做,但是...
假设您愿意在专用于别名的路径上有一个目录,您可以在该目录中创建 m 个文件来运行别名。在这种情况下,工作空间中将不存在别名。您当然可以自己编写别名文件,但以下函数会自动为您创建别名。如果您尝试别名的函数/脚本当前不在搜索路径上,则该函数可能会混淆。从您不编写的意义上说,该功能并不“完美”
alias myAlias = run('full/path/to/some/script')
反而
alias myAlias full/path/to/some/script
function alias(aliasName, functionName)
% alias myfoo foo
aliasPath = './alias';
isscript = false;
try
nargin(functionName);
catch %#ok<CTCH>
isscript = true;
end
if isscript
fileID = fopen([aliasPath, aliasName, '.m'],'w');
fprintf(fileID, '%s\n', ['run(', functionName, ')']);
fclose(fileID);
else
fileID = fopen([aliasPath, aliasName, '.m'],'w');
fprintf(fileID, '%s\n', ['function varargout = ', aliasName, '(varargin)']);
fprintf(fileID, '\t%s\n', ['varargout{1:nargout} = ', functionName, '(varargin{:});']);
fprintf(fileID, '%s\n', 'end');
fclose(fileID);
end
end