Enumeration class input modification possible?
2 ビュー (過去 30 日間)
古いコメントを表示
Hello fellow Matlab users.
I am having a simple enumeration class to hold some predifinded allowed values as shown below
class (Sealed = true) myMode
enumeration
CLRWRITE
MAXHOLD
MINHOLD
AVERAGE
VIEW
BLANK
end
end
I am reading a file where the above values are writen with special characters or spaces for example "CLR/WRITE" or "Max Hold". So far i am just using regexprep externally to properly format the string before enumeration.
val = "CLR/WRITE";
val = regexprep(val, '[\W]', '');
mode = myMode(val);
I also implemented a static method "fromString" in the class that implements the regexprep code above. But still fills clunky.
myTrace.fromString("CLR/WRITE")
methods (Static = true)
function out = fromString(val)
val = convertCharsToStrings(val{:});
if isstring(val)
val = regexprep(val, '[\W]', '');
out = myMode(val);
end
end
end
I am curious if there is a way for the enumeration class to direclty accept "CLR/WRITE" as an input. Without access to a constructor, it seems imposible to implement, but I am open to suggestions. Supperclass definition maybe?
2 件のコメント
回答 (1 件)
Dirk Engel
2025 年 1 月 27 日
A static method is the correct approach from an OOP perspective. In other programming languages, a static method for creating an object from a string is usally called "parse", but "fromString" is fine, too.
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!