J'ai une question concernant les classes dans MATLAB.Utilisation des propriétés 'facultatives' dans une classe MATLAB
J'écris un analyseur, qui n'a pas toujours la même entrée. Certaines variables ne sont pas définies à tout moment. Voici un petit script maquette:
test_parser.m
classdef test_parser < matlab.mixin.Copyable
properties (AbortSet = true)
a
b
end
end
make_class.m
function result = make_class(array)
result = test_parser;
result.a = array(1);
if length(array)>1
result.b=array(2);
end
end
maintenant appeler depuis la fenêtre de commande avec différentes longueurs d'entrée:
>> make_class([10])
ans =
test_parser with properties:
a: 10
b: []
>> make_class([10,20])
ans =
test_parser with properties:
a: 10
b: 20
Dans les deux cas, la variable b
est une propriété de test_parser
, comme indiqué. Mon souhait serait que b
soit optionnel, donc juste présent s'il y a b
dans l'entrée.
Quelle est la meilleure façon d'y parvenir? Je suppose qu'un paramètre optionnel n'est pas vraiment une propriété?
Si cela est purement pour des raisons esthétiques alors je dirais que la solution serait de garder le code propre (c'est le peu important!) Et au lieu de en se basant sur "l'absence de point-virgule" pour afficher la sortie, il suffit de créer une petite fonction pour afficher les valeurs de la classe. – Wolfie