Comment dois-je déclarer une matrice symbolique dans l'Octave?
Dans MatLab, vous pouvez déclarer des symboles assez facilement:
syms a,b
mat = [a,b]
J'obtiens une erreur, cependant, lorsque j'essaie de reproduire ce en Octave. C'est le code que j'utilise:
> symbols
> a = sym("a")
a =
a
> b = sym("b")
b =
b
> mat = [a,b]
error: octave_base_value::resize (): wrong type argument `ex'
error: octave_base_value::resize (): wrong type argument `<unknown type>'
octave-3.2.3.exe:4:C:\Octave\3.2.3_gcc-4.4.0\bin
Comment déclarer une matrice symbolique dans l'octave?
Vous devez vous connecter pour publier un commentaire.
Serait cette aider ?
Il semble que vous pourriez avoir besoin de la symbolique boîte à outils du package, référence ici.
Si vous n'avez pas le symbolique paquet, de le télécharger. D'Octave en ligne de commande, ou de gui de la ligne de commande. par exemple,
Si vous avez python et sympy installé, qui va installer le paquet pour vous d'octave forge. J'ai utilisé google pour comprendre comment obtenir sympy installé, me frapper si vous avez besoin d'aide.
Symbolique paquet installé, utilisez "pkg charge" pour importer le package de fonctions, et ensuite utiliser syms fonction de déclarer des symboles.
Ce symbole a et b.
"syms" par lui-même permet d'imprimer tous les symboles que vous avez défini.
J'ai trouvé ce paquet très utile dans le calcul de la Rotation des matrices pour mon Manipulateurs Robotiques classe. Espérons que cette aide.
Voici la partie de mon script pour plus d'exemples:
Après l'installation de la symbolique de la boîte à outils (vous pouvez le faire sur certains environnements, par l'émission d'
sudo apt-get install octave-symbolic
), vous devez effectuer les opérations suivantes:mais attention, Octave de fonctions permettant de manipuler des expressions symboliques sont bien pire que MATLAB.
Symbolique boîte à outils pour Octave est plus ou moins inutile. Vous ne pouvez pas redimensionner une matrice comme dans votre cas, vous ne pouvez pas utiliser le "-" de l'opérateur.
Par exemple, vous pouvez différencier une simple opération symbolique:
mais si vous essayez de le faire:
Même chose arrive dans votre cas, c'est à dire le redimensionnement d'une matrice contenant les valeurs symboliques
Un autre exemple pour la postérité.
J'ai utilisé http://octave-online.net/ de développer et d'exécuter ce script octave.
NB: j'ai inclus une sortie que les commentaires pour voir les résultats.
Gamme de Poignées de
Vous pouvez utiliser le Octave Struct Tableau pour créer une matrice symbolique comme ceci:
L'exécution de cette ci-dessus retourne:
Tableau de Symboles
Vous pouvez remplacer le
@sin
,@cos
, etc parsym("a")
,sym("b")
,sym("c")
, etc.L'exécution de cette ci-dessus retourne:
Références: