Le concepteur de la classe Matrix
doit avoir été un fan des structures de données immuables et de la programmation fonctionnelle. Oui tu as raison.
Dans tous les cas, il existe une solution simple pour ce que vous voulez. Utilisez Matrix
pour ce qu'il peut faire, alors, utilisez simplement .to_a
pour obtenir un tableau réel.
>> Matrix.identity(2).to_a
=> [[1, 0], [0, 1]]
Voir aussi Numerical Ruby Narray. Vous pouvez également sélectionner la classe pour ajouter plus de comportement. Si vous faites cela, veuillez patcher une sous-classe de Matrix. (Il y a des projets de bibliothèque Ruby qui veulent plus de comportement de require
d classes donc ils les modifient directement, rendant leurs nouveaux fichiers quelque peu toxiques.Ils auraient facilement pu patcher une classe de sous-classes ou singleton.)
Oh, et khelll (:-) voudrais probablement que je vous dise qu'il y a très probablement un moyen pour vous de faire ce que vous voulez in a functional style. C'est-à-dire en créant de nouveaux objets plutôt qu'en modifiant les anciens.
Pouvez-vous expliquer ce que vous en faites? – khelll
Je suis à la recherche de 'mauvaises' lignes et colonnes (qui sont entièrement constituées de zéros), puis je voudrais les supprimer. J'ai déjà le code pour le faire, mais écrit complètement via Arrays. Néanmoins, j'essaie de trouver une solution plus précise et plus jolie. – gmile