opérateur ternaire dans matlab
est-il un moyen de les taper pour si comme:
var = (cond) ? true : false;
ou devons-nous utiliser ce format?
if (cond)
true
else
false
end
- Juste
var = cond
résout ce problème, besoin de rien d'autre dans ce cas - Mais pour un cas plus général, voir quelques éléments de réponse ici: stackoverflow.com/questions/27561881/...
Vous devez vous connecter pour publier un commentaire.
MatLab n'est pas un opérateur ternaire, ou tout autre sucre syntaxique pour une ligne si-états. Mais si votre if est vraiment simple, vous pouvez l'écrire en une seule ligne de toute façon:
Il n'est pas aussi simple que l'opérateur ternaire, mais toujours mieux que de l'écrire dans les 5 lignes de code.
Si vous avez seulement besoin de vrai ou de faux, vous pouvez faire ce que
MatlabSorter
suggère. Dans le cas où vous voulez un vrai tertiaire de l'opérateur (c'est à direa = b ? c : d
), il n'en est aucun dans MATLAB. Cependant, en utilisant le fichier fourni ici, vous pouvez obtenir près.Vous pouvez faire
qui va définir var pour vrai. En remplaçant simplement ce que jamais vous avez besoin de 5 > 4.
var = (a < 0) * (-a) + (a >= 0) * (a)
MATLAB n'ont pas les expressions conditionnelles, mais dans certaines situations, vous pouvez obtenir un effet similaire en disant, par exemple,
var = cond*true_expr + (1-cond)*false_expr
. Contrairement au C de l'expression conditionnelle, ce sera bien sûr toujours d'évaluer à la foistrue_expr
etfalse_expr
, et sicond
arrive de ne pas être 0 ou 1 (note:false
se comporte comme 0;true
se comporte comme 1), vous obtiendrez fou résultats.true_expr
oufalse_expr
sontinf
Hmm... personne n'a mentionné cette
quelque part dans la doc il est écrit la " fin " est venue à l'un ce sera donc plus d'avenir
Utilisation :
Si votre besoin d'inline cas, voir Mathworks ...
- Je utiliser ce style souvent:
il est assez compact pour ne pas nécessiter une fonction d'assistance
Remplacer
par
x doit être une valeur booléenne ou 1 ou 0.
vrai ou 1 sélectionnez un
false ou 0 sélectionnera b
Cela devrait fonctionner avec tous ce que les cellules peuvent contenir et peut également être utilisé dans un complexe formular!