Bonjour à tous,
J'ai le problème suivant : on se donne une matrice de la forme suivante :
Le but est de réécrire le résultat sous la forme d'une seule colonne dans un vecteur Y et de la façon suivante : sur le vecteur X on regarde chaque ligne, par exemple la première : 1 3 ; puis dans X, je dois écrire en colonne, par pas de 1, toutes les valeurs entre le début et la fin d'une ligne bornes comprises, ce qui donnerait ici : 1 2 3 écrit en colonne. De même pour 10 12, ce qui donnerait avec cet exemple le début suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 X= 1 3 10 12 17 24 29 35 41 46 51 58 60 65 73 79 82 84 91 99 102 104 112 116 118 123
J'ai réussit à le faire à l'aide de la fonction suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13Y= 1 2 3 10 11 12 17 18 19 20 ...
Mais je cherche un moyen de le réaliser directement sans boucle for.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function Y=creer(X1_Imp1_liquide_melange) Y=[]; %donne les événements for i=1:size(X1_Imp1_liquide_melange,1) Y=[Y;(X1_Imp1_liquide_melange(i,1):X1_Imp1_liquide_melange(i,2))']; end
EDIT:
Pour résumé, mon problème commence déjà par l’interrogation suivante : si on se donne l'intervalle [1 3], comment écrire tous les nombres de cet intervalle par pas de 1 (afin d'obtenir [1 2 3]) sans faire de boucle ?
Partager