在Matlab中从单个文件加载多个函数

时间:2011-09-28 21:38:02

标签: matlab octave user-defined-functions aliases

  

可能重复:
  Is it possible to define more than one function per file in MATLAB?

是否可以在Matlab中从同一个.m文件加载多个函数?我发现为许多小别名实用程序函数为每个函数创建单个文件很麻烦。我已经尝试了this tip允许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

1 个答案:

答案 0 :(得分:2)

我担心这是不可能的,每个m文件只包含一个MATLAB函数(你可以有嵌套或子函数,但它们不能在文件外部访问)。

如果您担心在全球范围内放置太多东西,请考虑OOP和namespaces