Passer un nom de fichier comme argument de ligne de commande pour GNU Octave script
Dans un fichier exécutable Octave script, je veux passer le nom d'un fichier contenant une matrice et rendre gnu octave de la charge que les informations de fichier comme une matrice. Comment dois-je faire?
Ici est ce que le script devrait ressembler à
#! /usr/bin/octave -qf
arg_list = argv()
filename = argv{1} % Name of the file containing the matrix you want to load
load -ascii filename % Load the information
Le fichier passé sera une matrice contenant une matrice de taille arbitraire dire 2x3
1 2 3
5 7 8
À la ligne de commande du script doit être exécuté en tant que ./myscript mymatrixfile
où mymatrixfile
contient la matrice.
C'est ce que j'obtiens quand j'essaie d'exécuter le script juste écrit ci-dessus avec octave
[Desktop/SCVT]$ ./octavetinker.m generators.xyz (05-14 10:41)
arg_list =
{
[1,1] = generators.xyz
}
filename = generators.xyz
error: load: unable to find file filename
error: called from:
error: ./octavetinker.m at line 7, column 1
[Desktop/SCVT]$
Où generators.xyz
est le fichier contenant la matrice j'ai besoin de
OriginalL'auteur smilingbuddha | 2012-05-14
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner:
quand vous avez écrit la ligne
load filename
que vous avez indiqué, la fonction load pour charger le fichier de nom "nom de fichier". C'est-à-dire, vous avez fait la chose qui est l'équivalent deload('filename');
.Dans les deux MATLAB et Octave, une fonction "foo" suivi d'un espace puis le mot "bar" indique que la barre est présenté comme une chaîne de caractères toto. Cela est vrai même si la barre est une variable définie dans votre espace de travail.
OriginalL'auteur Sevenless