Précédent   Forum des professionnels en informatique > Environnements de développement > MATLAB
MATLAB Forum d'entraide sur MATLAB. Avant de poster -> FAQ MATLAB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2012, 14h06   #1
Invité régulier
 
Inscription : mars 2011
Messages : 92
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 92
Points : 7
Points : 7
Par défaut Script MATLAB : de Windows à Linux

Bonjour,

Pourriez-vous s'il vous plaît m'indiquer les raisons principales pouvant faire qu'un script matlab, initialement fonctionnel avec un ordinateur tournant sous Windows, ne le soit plus avec un ordinateur Linux ?

Merci beaucoup pour votre aide
recherche888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 14h27   #2
Modérateur
 
Inscription : août 2007
Messages : 3 580
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3 580
Points : 4 408
Points : 4 408
Bonjour,

certaines fonctions sont spécifiques à un système d'exploitation donné, mais il y en a très peu. Peux-tu donner plus de détails : plantage de matlab? message d'erreur? résultats inattendus? quel est le code utilisé?
__________________
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


La nature est un livre écrit en langage mathématique. Galilée.
magelan est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 14h29   #3
Invité régulier
 
Inscription : mars 2011
Messages : 92
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 92
Points : 7
Points : 7
Merci pour ta réponse !

Aucun message d'erreur, mais des résultats inattendus.
Si cela était dû à des fonctions spécifiques au système, y aurait-il nécessairement un message d'erreur l'indiquant ?

Le code est assez long, et je ne suis pas sûr de pouvoir le copier librement ici. Il fait appel à une fonction notamment écrite en C.
recherche888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 14h34   #4
Dut
Rédacteur/Modérateur
 
Avatar de Dut
 
Inscription : novembre 2006
Messages : 12 918
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 12 918
Points : 15 908
Points : 15 908
C'est difficile d'établir une liste exhaustive.

Programmation :
  • fonction DOS ou commandes DOS avec la fonction SYSTEM
  • nom de chemin en absolu (par exemple C:\...\...\...)
  • STRCAT à la place de FULLFILE pour générer des noms de chemin
  • fichiers MEX compilés sous Windows (.mexw32 ou .mexw64)
  • droit d'accès/écriture des dossiers différents

Interfaces graphiques :
  • problème éventuel d'encodage de caractères
  • différences dans l'apparence des interfaces graphiques

Ensuite tout dépend de l'ancienneté de ta version de MATLAB.
J'ai rarement eu des problèmes de portabilités avec les dernières versions de MATLAB.
__________________
Mes contributions MATLAB (R2009a - Windows & Linux)

• J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" (Saint Huck)
• Des larmes coulèrent doucement des yeux fermés du vieil homme. Moi je pleurais comme un enfant, que d'ailleurs pour lui je ne cesserais d'être ma vie durant (Amkoullel)

• Lâché de Mogwai sur St Malo... aie aie aie... ouille ouille ouille
Dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 14h41   #5
Invité régulier
 
Inscription : mars 2011
Messages : 92
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 92
Points : 7
Points : 7
Merci beaucoup !

La fonction "STRCAT" apparaît dans le script en question.
Tous les "strcat" remplacés par "fullfile" n'arrange pas le problème.

Peux-tu m'en dire davantage à ce propos ?
recherche888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 14h58   #6
Modérateur
 
Avatar de Winjerome
 
Homme Jérôme
Inscription : septembre 2009
Messages : 3 598
Détails du profil
Informations personnelles :
Nom : Homme Jérôme
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2009
Messages : 3 598
Points : 6 824
Points : 6 824
Bonjour,

>> Comment concaténer le nom d'un fichier et celui d'un répertoire ?
Ce serait plutôt à toi de nous en dire plus
Que fait ton programme dans les grandes lignes?
Où se situe le résultat inattendu?
__________________
Débutant en MATLAB? Vous voulez faire une Interface Graphique? Les Tutoriels et la FAQ sont là pour vous aider
Une erreur? FAQ : Messages d'erreur et avertissements
"Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).
Citation:
En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
Je suis régulièrement sur le chat DVP - Pas de question technique par MP, Merci
Winjerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 15h04   #7
Invité régulier
 
Inscription : mars 2011
Messages : 92
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 92
Points : 7
Points : 7
Le programme analyse des fichiers "wave" (en termes spectraux).
recherche888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 15h21   #8
Modérateur
 
Inscription : août 2007
Messages : 3 580
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3 580
Points : 4 408
Points : 4 408
Et :
Citation:
Envoyé par Winjerome Voir le message
Où se situe le résultat inattendu?
?

La première étape serait de contacter l'auteur du code, il a peut-être une idée sur la question.

Ensuite, si tu ne peux pas nous montrer le code, il va falloir te débrouiller tout seul, c'est à dire analyser le code, le faire tourner en mettant des points d'arrêt (breakpoint) à différentes étapes du code pour vérifier les résultats, etc..
__________________
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


La nature est un livre écrit en langage mathématique. Galilée.
magelan est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 15h06   #9
Invité régulier
 
Inscription : mars 2011
Messages : 92
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 92
Points : 7
Points : 7
Bonjour,

En comparant la dimension des matrices créées, je pense avoir repéré où se situe le problème :

Code :
1
2
cd('..')
tempfilelist=ls; lls=size(tempfilelist);
Le cd('..') permet d'accéder au dossier (immédiatement) parent sous les deux OS.
C'est "ls" qui semble poser problème.

Voici ce qu'en dit la documentation matlab :

Citation:
ls displays the results of the ls command on UNIX. On UNIX, ls returns a character row vector of filenames separated by tab and space characters. On Windows, ls returns an m-by-n character array of filenames, where m is the number of filenames and n is the number of characters in the longest filename found. Filenames shorter than n characters are padded with space characters.

On UNIX, you can pass any flags to ls that your operating system supports.
Savez-vous comme je pourrais utiliser une fonction sous Lunix se comportant comme "ls" sous windows ?

Merci beaucoup pour votre aide !
recherche888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 15h28   #10
Modérateur
 
Inscription : août 2007
Messages : 3 580
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3 580
Points : 4 408
Points : 4 408
Non, cd('..') permet de remonter d'un répertoire sous linux aussi.

Tu peux aussi utiliser la commande pwd pour savoir dans quel répertoire tu te trouves.

As-tu essayé de regarder ce que contient tempfilelist pour voir si c'est correct?
__________________
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


La nature est un livre écrit en langage mathématique. Galilée.
magelan est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 15h31   #11
Invité régulier
 
Inscription : mars 2011
Messages : 92
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 92
Points : 7
Points : 7
Citation:
Envoyé par magelan Voir le message
Non, cd('..') permet de remonter d'un répertoire sous linux aussi.

Tu peux aussi utiliser la commande pwd pour savoir dans quel répertoire tu te trouves.

As-tu essayé de regarder ce que contient tempfilelist pour voir si c'est correct?
Entre-temps, j'ai eu le temps d'éditer mon précédent message message. Pas de problème avec cd('..') mais avec ls.

tempfilelist mentionne bien les bons fichiers (ce dont je m'aperçois sur la command window), mais sa dimension est différente :

Sous windows, <112x33 char>
Sous linux, <1x3578 char>
recherche888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 15h37   #12
Modérateur
 
Inscription : août 2007
Messages : 3 580
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3 580
Points : 4 408
Points : 4 408
Je pense que tu peux utliser dir à la place de ls, par contre, il y aura surement des modifications à faire dans le code (dir crée une structure) (mais l'avantage de dir c'est qu'il se comporte de la même manière sous windows et linux donc ton code deviendra un peu plus portable).
__________________
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


La nature est un livre écrit en langage mathématique. Galilée.
magelan est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 15h41   #13
Invité régulier
 
Inscription : mars 2011
Messages : 92
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 92
Points : 7
Points : 7
Citation:
Envoyé par magelan Voir le message
Je pense que tu peux utliser dir à la place de ls, par contre, il y aura surement des modifications à faire dans le code (dir crée une structure) (mais l'avantage de dir c'est qu'il se comporte de la même manière sous windows et linux donc ton code deviendra un peu plus portable).
Merci bien
mais, es-tu sûr qu'il n'existe pas de fonction sous linux équivalente à la "ls" de windows ?
recherche888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 15h56   #14
Modérateur
 
Avatar de Winjerome
 
Homme Jérôme
Inscription : septembre 2009
Messages : 3 598
Détails du profil
Informations personnelles :
Nom : Homme Jérôme
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2009
Messages : 3 598
Points : 6 824
Points : 6 824
C'est la même fonction seule la forme de la sortie diffère suivant l'OS.
Il te suffit par la suite de faire un traitement utilisant les retours de ispc, isunix (et ismac ?) afin d'obtenir la même forme en définitif.
__________________
Débutant en MATLAB? Vous voulez faire une Interface Graphique? Les Tutoriels et la FAQ sont là pour vous aider
Une erreur? FAQ : Messages d'erreur et avertissements
"Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).
Citation:
En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
Je suis régulièrement sur le chat DVP - Pas de question technique par MP, Merci
Winjerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 15h59   #15
Invité régulier
 
Inscription : mars 2011
Messages : 92
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 92
Points : 7
Points : 7
Citation:
Envoyé par Winjerome Voir le message
C'est la même fonction seule la forme de la sortie diffère suivant l'OS.
Il te suffit par la suite de faire un traitement utilisant les retours de ispc, isunix (et ismac ?) afin d'obtenir la même forme en définitif.
Merci beaucoup !
La forme de sortie importe vraiment pour la suite (que je me vois difficilement réécrire )

comment les fonctions que tu me proposes peuvent-elles m'aider ?!

Citation:
isunix


Determine if version is for UNIX platform
Syntax


tf = isunix

Description


tf = isunix returns logical 1 (true) if the version of MATLAB software is for the UNIX[1] platform, and returns logical 0 (false) otherwise
recherche888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 23h14   #16
Modérateur
 
Avatar de Winjerome
 
Homme Jérôme
Inscription : septembre 2009
Messages : 3 598
Détails du profil
Informations personnelles :
Nom : Homme Jérôme
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2009
Messages : 3 598
Points : 6 824
Points : 6 824
Note: Suite de cette discussion >>ici<<
__________________
Débutant en MATLAB? Vous voulez faire une Interface Graphique? Les Tutoriels et la FAQ sont là pour vous aider
Une erreur? FAQ : Messages d'erreur et avertissements
"Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).
Citation:
En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
Je suis régulièrement sur le chat DVP - Pas de question technique par MP, Merci
Winjerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h11.


 
 
 
 
Partenaires

Hébergement Web