2

可能重复:
是否可以在 MATLAB 中为每个文件定义多个函数?

是否可以从 Matlab 中的同一个 .m 文件加载多个函数?我发现为许多小型别名实用程序函数的每个函数创建一个文件很麻烦。我已经尝试过这个允许 Octave 的技巧,但在我的 Matlab 中没有。我收到以下错误:

??? Error: File: /home/per/Documents/MATLAB/aliases.m Line: 6 Column: 1
Function definitions are not permitted in this context.

我的aliases.m文件目前包含

% Prevent Octave from thinking that this
% is a function file:

1;

function y = isvariable(x)
%Return non-zero if x is a function.
    y = exist(x, 'var');
end

function y = isfile(x)
%Return non-zero if x is a function.
    y = exist(x, 'file');
end

function y = isdir(x)
%Return non-zero if x is a function.
    y = exist(x, 'dir');
end

function y = isbuiltin(x)
%Return non-zero if x is a function.
    y = exist(x) == 5;
end
4

1 回答 1

2

恐怕这是不可能的,每个 m 文件只包含一个 MATLAB 函数(您可以有嵌套函数或子函数,但在文件之外无法访问它们)。

如果您担心在全局范围内放置太多东西,请考虑 OOP 和命名空间

于 2011-09-28T21:58:18.400 回答