Bonjour,
Je cherche à mélanger des nombres et du texte à l'intérieur d'une matrice.
Quelqu'un aurait il une idée de la manière dont il faut procéder?
Merci
Bonjour,
Je cherche à mélanger des nombres et du texte à l'intérieur d'une matrice.
Quelqu'un aurait il une idée de la manière dont il faut procéder?
Merci
dans une matrice tu ne peux pas
mais le cell array est ton ami![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 mycellarray = {}; mycellarray{end+1} = 1; mycellarray{end+1} = 'toto'; mycellarray{end+1} = [1,2,3,4,5];
après tu y accèdes comme une matrice
Tu peux aussi en faire à plusieurs dimensions
Code : Sélectionner tout - Visualiser dans une fenêtre à part mycellarray{1}
ou combiner avec une structure
Code : Sélectionner tout - Visualiser dans une fenêtre à part mycellarray{i,j} = 'toto'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mycellarray{i,j}.value = 1; mycellarray{i,j}.text = 'chouette';
Enfin bref, tu peux faire ce que tu veux dessus.
N'oublie pas d'utiliser cellfun plutôt que des boucles ensuite, histoire d'avoir un programme efficace.
Merci beaucoup pour cette réponse!
Maintenant je bloque sur autre chose:
J'ai une cellarray composée texte dans la première colonne puis de nombres partout ailleurs.
Je souhaiterais la trier par ligne. Mais je voudrais garder chaque ligne telles qu'elles sont.
La partie du script me posant problème est:
Le message d'erreur est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 i=1; M=[A(i,:);B(i,:);C(i,:)]; %%% A={'text' 2 3 7 2] Final=sortrows(M,[-2 -5 -3]);
Comment puis je m'y prendre ???? Error using ==> cell.sort
Input argument must be a cell array of strings.
Error in ==> sortrows>sort_back_to_front at 134
[v,ind] = sort(x(ndx,k));
Error in ==> sortrows at 100
ndx = sort_back_to_front(x_sub);
Error in ==> Programme at 19
Final=sortrows(M,[-2 -5 -3]);
Merci d'avance
Expérimente ça :
et essaye de comprendre la différence entre les 2 dernières lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 A{1} = 'toto'; A(1) A{1}
Ensuite si je lis la doc de sortrows j'apprends qu'il peut trier des cellarrays de chaines de caractères (par ordre lexico) ou des matrices.
Les deux mélangés... je ne suis pas sûr![]()
Tu es sûr que tu abordes bien ton problème ? ça me parait particulièrement bizarre de vouloir trier des strings et des chiffres.
Voila, bon courage![]()
Merci encore pour ces conseils!
En revanche il est possible que je ne m'y prenne pas de la meilleure des facons...
Je suis habitué à utiliser MATLAB comme pur outil mathématique, mais maintenant j'ai envie de passer à autre chose. Je tente d'aller plus loin en m'amusant à programmer.. Mais c'est juste le début.
En fait je cherche à réaliser un programme me permettant de réaliser le classement d'un championnat de foot par exemple.
A la fin de chaque journée, j'ai un vecteur avec toutes les valeurs (points, bp bc etc..) pour chaque équipe. Ensuite avec la fonction "sortrows" j'effectue le classement.
Mon problème réside dans le fait que le nom de chaque équipe devrait apparaître dans ma matrice (ou cellarray) finale pour que ce soit plus clair...
Ce doit être une manipulation toute simple...
Je cherche du coté du script: A(i,:).Nom = [3 2 3 5 4 ] mais je retrouve le meme problème pour le résultat final...
Si quelqu'un a une piste ou une manière différente pour aborber ce cas...
pourquoi tu ne fais pas plutôt un vecteur d'équipe
avec equipe(1).nom = 'truc', equipe(1).stats = [ ... ]
avec une ligne dans stats par journée et en colonne tes bc, bp, etc.
en comptant le nombre de lignes de stats tu sauras où est arrivé l'équipe dans la compet.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager