Puis-je avoir une structure de données de pile dans matlab? p>
Par exemple, une pile d'entiers où je peux pousser des éléments dedans comme stack.push (i) code>, obtenez des éléments en dehors de celui-ci comme i = pile.pop () code > et vérifier s'il est vide pile.isempty () code>. p>
5 Réponses :
Vous pouvez faire rouler votre propre ou vous pouvez utiliser quelqu'un d'autre, comme Ceci . p>
Une pile faite maison très simple serait un tableau avec un compte, le comte pointant vers l'élément le plus haut. P>
Je ne pense pas que Matlab l'a même dans les versions plus récentes. Mais vous pouvez utiliser Java, c'est un «citoyen de première classe» à Matlab, cela fonctionnerait parfaitement avec des entiers comme vous en avez besoin. Voir aussi Quue et Liste liée Questions connexes. P>
Il suffit d'écrire dans matlab pile = java.util.stack () code>, puis vous pouvez stack.push (i) code>, ECC. P>
Soyez juste très prudent avec les conversions de type de données.
@Andrey Ce juste mord moi - j'ai poussé un vecteur de rangée à une pile et quand je l'ai apparu, il est sorti comme vecteur de colonne.
J'ai utilisé le Java One à Matlab et honnêtement, c'est très lent. Il est bien préférable de faire ce que @skurmedel a dit, comme: et simuler pop code>: p>
Il existe une soumission utile dans FileExchange: P>
Veuillez utiliser des tableaux MATLAB comme cela est. Ils sont 100 fois plus rapides que d'utiliser n'importe quel Util Java. Écrivez la logique supplémentaire pour que le tableau fonctionne comme une pile. P>
de l'expérience personnelle, essayez simplement de ré-écrire votre algorithme pour utiliser le tableau MATLAB. P>
Matlab a des capacités de POO 'complètes'. Il suffit d'écrire votre classe de pile. Voir la documentation pour MATLAB OOP: mathworks.com/help/techdoc/matlab_oop/ug_intropage. HTML