Bonjour,
Un code matlab développer sous une version matlab linux, peut-il être utilisé comme tel sous une version windows ?
Bonjour,
Un code matlab développer sous une version matlab linux, peut-il être utilisé comme tel sous une version windows ?
À ma connaissance pour passer de Window -> linux :
- faire attention au / et \ dans les chemins. Alors que windows ne fait pas la différence, Linux accepte seulement / Il est préférable d'utiliser la fonction fullfile qui ferait le boulot correctement.
- il existe quelques bug sous linux, par exemple la fonction ls m'a donné des choses surprenantes sous linux alors qu'elle fonctionnait parfaitement sous windows (ceci était le cas avec une version plus vieille de Matlab), la gestion d'image lorsqu'on utiliser 2 écrans peut être problématique également...
Donc quelques petites choses auxquelles il faut faire attention, mais je ne connais aucun problème quant au passage Linux -> windows.
La question manque de précisions. MATLAB est-il installé sur la machine avec Windows ? Est-ce la même version ? Les Toolbox sont-elles les mêmes sur les deux machine ?
Je vais quand même essayer d'apporter quelques informations générales
La portabilité est effectivement un des avantages des langages interprétés comme MATLAB (tout du moins dans les versions récentes)
Il faut toujours utiliser fullfile pour construire les chemins vers des fichiers
Il faut éviter l'utilisation de system ou l'appel à des programmes externes (ou du moins s'assurer de leur disponibilité sur les différentes plateformes)
Il faut aussi se méfier des différents formats d'encodage du texte
Il faut éviter d'utiliser des technologies propres à une plateforme (ActiveX uniquement sur Windows…)
Dans tous les cas, il est possible d'utiliser ispc, isunix et ismac pour différencier des actions dans un code en fonction de la plateforme (attention à l'ordre des appels)
Seules exceptions, les fichiers MEX et les applications compilées avec le MATLAB Compiler ne sont pas portables. Il faut nécessairement refaire une compilation sur la plateforme cible. L'utilisation de loadlibrary puisqu'il faut assurer la disponibilité des bibliothèques sur toutes les plateformes.
En plus de la portabilité logiciel, il faut aussi parfois tenir compte de la portabilité matériel. C'est souvent le cas quand on souhaite afficher une interface graphique sur des écrans utilisant des résolutions différentes. Il y a aussi parfois des bugs d'affichage (support de OpenGL).
Il peut y avoir d'autres points à contrôler mais c'est toujours très spécifique à un code. Le plus simple au final sera de tester le code sur la machine cible.
merci pour vos réponses.
Je vais approfondir plus sérieusement le problème.Mon post est effectivement un peu léger.
Je vais regrouper le maximum d'informations avant de re-poster.
Partager