Je suis actuellement en train d'écrire un module qui repose sur l'utilisation d octave.
Après pas mal de cafouillages, j ai à peu près réussi à faire ce que je désirais.
1) La première chose à prendre en compte est décrite dans la doc de wims (donc je ne m attarderai pas); l'utilisation de la (le?) slib text/octavematrix à chaque fois qu on récupère in tableau d'un appel octave.
Exemple:
Code : |
\text{exemple=wims(exec octave A=[ 1, 2; 3, 4];A*A)}
\text{exemple=slib(text/octavematrix \exemple)}
|
2)La deuxième chose est un peu plus subtile; la colonne est le format par défaut pour un vecteur issu d'octave.
Exemple:
Code : |
\text{exemple=wims(exec octave tab(3)=1)}
\text{exemple=slib(text/octavematrix \exemple)}
|
la variable exemple contient 0;0;1 et non 0,0,1
J ai trouvé des parades assez compliquées mais en fait il existe une solution très simple: les "preference variables" d'octave.
Ces variables permettent de contrôler tout ce genre de petits comportements d'octave.
(vous trouverez la liste de ces variables ici:
http://www.math.utah.edu/docs/info/octave_8.html#SEC67 et là :
http://www.cheric.org/edu/eduaids/octave/octman/octave_55.html pour une description)
Il suffit donc d'écrire la commande suivante dans octave
Code : |
prefer_column_vectors=false;
|
Voici mes "preference variables"
Code : |
prefer_column_vectors=false;
print_empty_dimensions=false;
print_answer_id_name=false;
define_all_return_values=true;
|
print_answer_id_name est malheureusement sans effet (cf là
http://osdir.com/ml/gnu.octave.bugs/2004-05/msg00015.html).
(ca serait bien utile pour les fonctions a plusieurs arguments de sortie)
chaque fois que j appelle octave je le fais de la manière suivante:
Code : |
\text{exemple=wims(exec octave \octave_conf A=[ 1, 2; 3, 4];A*A)}
|
avec \octave_conf qui contient les 4 lignes présentées ci-dessus.
J espère que ce message évitera a certains de réinventer la roue comme je l ai fait.
n hésitez pas à me contacter si vous voulez en savoir plus sur ma modeste expérience "octave dans wims"
Yves
PS: Désolé pour la lourdeur du message mais je ne sais pas gérer les retours à la ligne dans les messages.