2

重複の可能性:
MATLABでファイルごとに複数の関数を定義することは可能ですか?

Matlabの同じ.mファイルから複数の関数をロードすることは可能ですか?多くの小さなエイリアスユーティリティ関数の関数ごとに1つのファイルを作成するのは面倒です。私はすでに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関数が1つだけ含まれています(ネストされた関数またはサブ関数を持つことができますが、ファイルの外部からはアクセスできません)。

グローバルスコープに多くのものを置くことを心配している場合は、OOPと名前空間について考えてください。

于 2011-09-28T21:58:18.400 に答える