関数のスコープ内で列挙型と定数をローカルに定義したいと考えています。
私は、MATLAB がそのオブジェクト指向プログラミング フレームワークの一部として列挙型と定数を提供していることを知りました。ただし、関数のスコープ内で定義しようとすると、機能しません。たとえば、次のことを試みると、MATLAB は「解析エラー: 構文が無効です」とエラーを出します。
function output = my_function(input)
classdef my_constants
properties (Constant)
x = 0.2;
y = 0.4;
z = 0.5;
end
end
classdef colors
enumeration
blue, red
end
end
statements;
その理由は、それぞれclassdef
が独自の.m
ファイルで定義する必要があるためです。
.m
使用するすべての列挙または一連の定数に対してファイルを作成することは避けたいと思います。これを行う方法はありますか?私のオプションは何ですか?
補遺1:
例を求められたので、ここに疑似コードを示します。この例は、ローカル列挙を定義して使用する必要があることを示しています。
またはと呼ばれる列挙型があるとcolors
します。関数でローカルに定義し、それを使用して関数内のステートメントの流れを制御したいと思います。RED
BLUE
colors
function output = my_function(input)
# ....
# Code that defines the enumeration 'colors'
#....
my_color = colors;
# ... code that changes 'my_color' ...
switch my_color
case RED
do this
case BLUE
do that;
end
補遺2:
Java コードを利用してこれを行うことはできますか? もしそうなら、どのように?