Bonjour,
Si vous utilisez matlab sous windows, pourriez-vous s'il vous plaît copier le script de la fonction matlab 'ls' ?
Merci beaucoup
Version imprimable
Bonjour,
Si vous utilisez matlab sous windows, pourriez-vous s'il vous plaît copier le script de la fonction matlab 'ls' ?
Merci beaucoup
La fonction LS est contenue dans le fichier ls.m
Pour connaitre le chemin de ce fichier, il suffit de faire :
Code:which ls -all
Merci pour ta réponse :)
J'ai accès à ce fichier, mais depuis une machine tournant sous UNIX.
Dans la mesure où cette fonctionne n'opère pas tout à fait à l'identitique sous Windows, peut-être le script est-il différent sur une version de matlab installée sur une machine tournant sous Windows ?
Bonjour,
j'ai une impression de déjà-vu...
Les scripts sont sans doute identiqies mais la forme du résultat est différent :
Si tu veux garder la même forme, il est sans doute plus simple de modifier la sortie pour la mettre au même format plutôt que de modifier le script ls.m.Citation:
On UNIX platforms, list is a character row vector of names separated by tab and space characters.
On Microsoft Windows platforms, list is an m-by-n character array of names—m is the number of names and n is the number of characters in the longest name. MATLAB pads names shorter than n characters with space characters.
Merci !
Comme tu l'as compris au vu de mes autres postes, je tente de mettre en place une solution alternative.
Ce à quoi j'ai pensé dans ce post était "au cas où" le script de cette fonction serait effectivement différent.
S'ils sont identiques, il y a donc des fonctions définies en amont fonctionnant différemment sous les deux OS.
Il y a un test dans la fonction ls pour savoir si le code est utilisé dans un système unix ou windows :
- pour un système unix, MATLAB fera appel à la fonction unix ls
- pour un système windows, MATLAB fera appel à la fonction matlab dir (d'ou l'utilité d'utiliser directement la commande dir pour que la comande s'éxécute de la même façon sur les 2 systèmes).
Pour modifier la sortie de ls sous linux et la mettre au même format que sous windows, il faut transformer la structure obtenue en sortie de ls vers un tableau de caractères :
ce code devrait correspondre à list_split_char = ls; sous windows. A tester.Code:
1
2
3 listls = ls; listls_split = regexp(k,'\n','split'); list_split_char = char(s);