[MATLAB] script pour d'autre script
Résolu/Fermé
A voir également:
- [MATLAB] script pour d'autre script
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Script bat - Guide
- Microsoft activation script - Accueil - Windows
- Executeur de script - Télécharger - Édition & Programmation
8 réponses
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 834
14 janv. 2008 à 21:51
14 janv. 2008 à 21:51
Salut kwijbo
Tu veux dire un truc dans le genre : tu choisis un nombre k et le metascript est un peu comme ça (celui qui est au même niveau d'arborescence que tous tes dossiers):
Je notes tes dossiers dossier_1, dossier_2, etc... parce que je sais pas si Matlab aime les espaces.
function metascript(k)
dossier_cible=['dossier_',num2str(k)];
cd(dossier_cible)
script
cd ..
Ça rentre dans le dossier numéro k que t'auras choisi, ça lance le script à l'intérieur et ça en ressort.
Je suis à côté de la plaque ou est-ce que c'est ce que tu cherches?
Tu veux dire un truc dans le genre : tu choisis un nombre k et le metascript est un peu comme ça (celui qui est au même niveau d'arborescence que tous tes dossiers):
Je notes tes dossiers dossier_1, dossier_2, etc... parce que je sais pas si Matlab aime les espaces.
function metascript(k)
dossier_cible=['dossier_',num2str(k)];
cd(dossier_cible)
script
cd ..
Ça rentre dans le dossier numéro k que t'auras choisi, ça lance le script à l'intérieur et ça en ressort.
Je suis à côté de la plaque ou est-ce que c'est ce que tu cherches?
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 834
14 janv. 2008 à 22:17
14 janv. 2008 à 22:17
Cool alors, de rien...
Là le truc que j'ai fait, il faut que ce soit toi qui choisisses directement le nom du dossier (comme t'as dû le voir).
Si tu veux qu'il y ait un ptit truc écrit qui te demande quel exercice tu veux lancer le script ressemblera à ça:
function metascript
k=input('Quel exercice voulez-vous lancer? > ');
disp(['Lancement de l''exercice ', num2str(k), '. Attention! Accrochez vos ceintures! On y va...']);
dossier_cible=['dossier_',num2str(k)];
cd(dossier_cible)
script
cd ..
Mais bon... l'interface qui demande et le disp c'est un peu gadget et un peu naze en fait.
Pour les explications:
metascript : plus d'argument, il t'es demandé après
input : il attend que t'aies mis un nombre
disp : il te dit "je lance l'exercice". Attention : bien mettre les deux apostrophes (c'est pas des guilllemets) à l''exercice
et après comme taleur
Là le truc que j'ai fait, il faut que ce soit toi qui choisisses directement le nom du dossier (comme t'as dû le voir).
Si tu veux qu'il y ait un ptit truc écrit qui te demande quel exercice tu veux lancer le script ressemblera à ça:
function metascript
k=input('Quel exercice voulez-vous lancer? > ');
disp(['Lancement de l''exercice ', num2str(k), '. Attention! Accrochez vos ceintures! On y va...']);
dossier_cible=['dossier_',num2str(k)];
cd(dossier_cible)
script
cd ..
Mais bon... l'interface qui demande et le disp c'est un peu gadget et un peu naze en fait.
Pour les explications:
metascript : plus d'argument, il t'es demandé après
input : il attend que t'aies mis un nombre
disp : il te dit "je lance l'exercice". Attention : bien mettre les deux apostrophes (c'est pas des guilllemets) à l''exercice
et après comme taleur
Merci pour ta réponse
Je vais essayer cette piste, je suis pas super fort en matlab pour te dire si c'est exactement ça.
C'est un projet pour mes études
ce que je voudrai idéalement, c'est de lancer un seul script qui me demande en input un n° d'exercice
ce numero d'exercice lancer la script ce situant dans un des dossiers (ou je vais enlenver les espaces) et lancerai le script "script" comme si je le tappais dans "l'explorer matlab"
et me renvoyé le resultat des fonctions qu'il execute.
Je vais essayer cette piste, je suis pas super fort en matlab pour te dire si c'est exactement ça.
C'est un projet pour mes études
ce que je voudrai idéalement, c'est de lancer un seul script qui me demande en input un n° d'exercice
ce numero d'exercice lancer la script ce situant dans un des dossiers (ou je vais enlenver les espaces) et lancerai le script "script" comme si je le tappais dans "l'explorer matlab"
et me renvoyé le resultat des fonctions qu'il execute.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens de tester et d'adapter tes lignes de codes et la seule chose à dire, c'est que c'est nickel !
Merci encore
Merci encore
Merci beaucoup, voilà le resultat de mon adaptation :
function metascript()
% ce metascript permet l'execution des scripts des differentes questions
% sans avoir à ouvrir le dossier concerné, tout ce fait à partir d'ici !!
k=input('entrez le n° de la question pour executer le script : ');
switch k
case{1}
dossier_cible=['Question',num2str(k)];
cd(dossier_cible)
disp(' ')
disp('retour arrière pour continuer avec les autres questions')
case{2,3,4}
dossier_cible=['Question',num2str(k)];
cd(dossier_cible)
script
cd ..
otherwise
disp('n° introuvable')
end
j'ai quand même quelques notions, mais le metascript, je connaissais pas, on l'avait pas vu en cours, et l'aide de matlab des fois....
sinon j'ai une question,
est-il possible pour le cas ou k=1 de faire une pause, de permettre à l'utilisateur de voir les fonctions qui sont à l'interieur, et d'appuyer sur enter pour revenir au dossier parent, ou une astuce de ce genre.
Je pense que non car si un script est en cours d'execution, je peux pas ouvrir de m-files, ça doit etre dans le même genre, mais si il y avait une petite façon de faire un break pour que l'utiliateur doit appuyer sur entrer pour revenir au dossier parent (cad avant d'enchainer sur =>cd ..)
d'ailleur a quoi correspond plus précisement les .. apres le cd ?
function metascript()
% ce metascript permet l'execution des scripts des differentes questions
% sans avoir à ouvrir le dossier concerné, tout ce fait à partir d'ici !!
k=input('entrez le n° de la question pour executer le script : ');
switch k
case{1}
dossier_cible=['Question',num2str(k)];
cd(dossier_cible)
disp(' ')
disp('retour arrière pour continuer avec les autres questions')
case{2,3,4}
dossier_cible=['Question',num2str(k)];
cd(dossier_cible)
script
cd ..
otherwise
disp('n° introuvable')
end
j'ai quand même quelques notions, mais le metascript, je connaissais pas, on l'avait pas vu en cours, et l'aide de matlab des fois....
sinon j'ai une question,
est-il possible pour le cas ou k=1 de faire une pause, de permettre à l'utilisateur de voir les fonctions qui sont à l'interieur, et d'appuyer sur enter pour revenir au dossier parent, ou une astuce de ce genre.
Je pense que non car si un script est en cours d'execution, je peux pas ouvrir de m-files, ça doit etre dans le même genre, mais si il y avait une petite façon de faire un break pour que l'utiliateur doit appuyer sur entrer pour revenir au dossier parent (cad avant d'enchainer sur =>cd ..)
d'ailleur a quoi correspond plus précisement les .. apres le cd ?
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 834
14 janv. 2008 à 23:29
14 janv. 2008 à 23:29
Le metascript c'est juste un nom que je lui ai donné parce qu'il était celui qui mettait en route les autres, c'est pas une fonction Matlab spéciale. Tu peux l'appeler celine_fion si t'en as envie par exemple.
Les parenthèses sont pas utiles au fait, juste metascript suffit quand il y a pas d'argument.
En fait je comprends pas bien ce que fait ton k=1.
Sinon pour faire une sorte de pause pour que la personne voit ce qu'elle peut faire, fais un ls, ça liste les fichiers d'un dossier.
Et après tu refais un input du genre "Alors que choisissez vous?"
Le .. après le cd c'est pour remonter d'un cran dans l'arborescence des dossiers. Par exemple si t'es dans Coucou/Toi/Matlab/Dossier_pipo/ et que tu tapes cd .. tu te retrouves dans Coucou/Toi/Matlab/
T'as jamais ouvert de fenêtre de commande sous Mac? Je pense que c'est cd .. aussi.
J'ai pas tout en détail ce que tu veux faire, mais si tu veux faire un truc pour qu'un script se lance quand la personne tape un nombre ou remonte dans l'arborescence quand la personne tape juste entrée ou le numéro d'un fichier qui existe pas, tu peux faire un test sur le k comme tu l'as déjà fait. Si c'est aucun des fichiers possibles tu remontes.
Les parenthèses sont pas utiles au fait, juste metascript suffit quand il y a pas d'argument.
En fait je comprends pas bien ce que fait ton k=1.
Sinon pour faire une sorte de pause pour que la personne voit ce qu'elle peut faire, fais un ls, ça liste les fichiers d'un dossier.
Et après tu refais un input du genre "Alors que choisissez vous?"
Le .. après le cd c'est pour remonter d'un cran dans l'arborescence des dossiers. Par exemple si t'es dans Coucou/Toi/Matlab/Dossier_pipo/ et que tu tapes cd .. tu te retrouves dans Coucou/Toi/Matlab/
T'as jamais ouvert de fenêtre de commande sous Mac? Je pense que c'est cd .. aussi.
J'ai pas tout en détail ce que tu veux faire, mais si tu veux faire un truc pour qu'un script se lance quand la personne tape un nombre ou remonte dans l'arborescence quand la personne tape juste entrée ou le numéro d'un fichier qui existe pas, tu peux faire un test sur le k comme tu l'as déjà fait. Si c'est aucun des fichiers possibles tu remontes.