Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > MATLAB
MATLAB Forum d'entraide sur MATLAB. Avant de poster : FAQs MATLAB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/01/2013, 16h28   #1
hilibili
Invité de passage
 
Homme Benoit
Étudiant
Inscription : janvier 2013
Messages : 31
Détails du profil
Informations personnelles :
Nom : Homme Benoit
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : janvier 2013
Messages : 31
Points : 0
Points : 0
Par défaut indexation par une fonction

Bonjour à tous,
Je cherche à indexer des valeurs d'une matrice M [1,n] par une fonction.
CAD, créer une nouvelle matrice où seront stockées les valeurs à partir de la 10 lignes toutes les 8 lignes jusqu'à la dernière afin de pouvoir la visualiser sur un graphe.
Merci par avance pour votre aide
hilibili est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 16h51   #2
FLB
Modérateur
 
Avatar de FLB
 
Homme Florent
Ing. Aérospatiale
Inscription : juin 2003
Messages : 583
Détails du profil
Informations personnelles :
Nom : Homme Florent
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Ing. Aérospatiale
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2003
Messages : 583
Points : 924
Points : 924
Je pense que tu peux t'en sortir avec la fonction reshape
Tu commences par enlever les 10 premières lignes, tu transformes ta matrice [1,n] en matrice [8, n/8] et tu gardes la première ligne seulement.
__________________
Bientôt 10 ans sur DVP!
Matlab 7.9.1.705 R2009b SP1 | XP SP3
Pas de question technique par MP, Merci
FLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 18h31   #3
magelan
Modérateur
 
Inscription : août 2007
Messages : 4 104
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 4 104
Points : 5 444
Points : 5 444
Bonjour,

Citation:
Envoyé par hilibili Voir le message
Je cherche à indexer des valeurs d'une matrice M [1,n] par une fonction.
C'est bien une matrice n lignes et une colonne? en général avec matlab, le premier nombre donne le nombre de lignes et le deuxième le nombre de colonnes, comme tu as inversé je préfère demander.

Si c'est bien cela :
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 01h39   #4
FLB
Modérateur
 
Avatar de FLB
 
Homme Florent
Ing. Aérospatiale
Inscription : juin 2003
Messages : 583
Détails du profil
Informations personnelles :
Nom : Homme Florent
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Ing. Aérospatiale
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2003
Messages : 583
Points : 924
Points : 924
Pourquoi faire simple quand je trouve une solution compliquée
__________________
Bientôt 10 ans sur DVP!
Matlab 7.9.1.705 R2009b SP1 | XP SP3
Pas de question technique par MP, Merci
FLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 10h39   #5
hilibili
Invité de passage
 
Homme Benoit
Étudiant
Inscription : janvier 2013
Messages : 31
Détails du profil
Informations personnelles :
Nom : Homme Benoit
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : janvier 2013
Messages : 31
Points : 0
Points : 0
Citation:
Envoyé par magelan Voir le message
Bonjour,


C'est bien une matrice n lignes et une colonne? en général avec matlab, le premier nombre donne le nombre de lignes et le deuxième le nombre de colonnes, comme tu as inversé je préfère demander.

Si c'est bien cela :
Bonjour,
Merci pour toute vos réponses.
Puis-je remplacer le chiffre 8 par une formule ? J'entend par la quelque chose de la forme :

Code :
1
2
for i=1: x
M2=M(10 : (8*i/45):end) ;
Merci beaucoup !
hilibili est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 10h53   #6
magelan
Modérateur
 
Inscription : août 2007
Messages : 4 104
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 4 104
Points : 5 444
Points : 5 444
Bien sur, il suffit de tester mais cela devrait marcher.

Petite remarque : telle que tu l'as écrit, M2 est écrasé à chaque itération.
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 13h17   #7
hilibili
Invité de passage
 
Homme Benoit
Étudiant
Inscription : janvier 2013
Messages : 31
Détails du profil
Informations personnelles :
Nom : Homme Benoit
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : janvier 2013
Messages : 31
Points : 0
Points : 0
Citation:
Envoyé par magelan Voir le message
M2 est écrasé à chaque itération.
Comment éviter ce phénomène svp ?
hilibili est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 14h01   #8
Merel
Membre chevronné
 
Inscription : mars 2007
Messages : 619
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mars 2007
Messages : 619
Points : 708
Points : 708
Envoyer un message via MSN à Merel
Il suffit pour cela d'utiliser un indice pour le stockage des infos de M2.

L'idée étant la suivante :

Code :
1
2
3
for i=1: x
M2(u)=M(10 : (8*i/45):end) ;
end
Avec u l'indice qui va bien ;-) Tu devrais avoir toutes les infos nécessaire pour avancer.
Un dernier truc : pense à la préallocation si tu connais la taille de M2.
Merel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 14h09   #9
FLB
Modérateur
 
Avatar de FLB
 
Homme Florent
Ing. Aérospatiale
Inscription : juin 2003
Messages : 583
Détails du profil
Informations personnelles :
Nom : Homme Florent
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Ing. Aérospatiale
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2003
Messages : 583
Points : 924
Points : 924
Remarque : tu dois t'assurer que (8*i/45) est entier (puisque c'est un index).
Tu peux utiliser "ceil" par exemple pour arrondir à l'entier supérieur (tu ne veux pas que (8*i/45) fasse 0!).
__________________
Bientôt 10 ans sur DVP!
Matlab 7.9.1.705 R2009b SP1 | XP SP3
Pas de question technique par MP, Merci
FLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 15h12   #10
hilibili
Invité de passage
 
Homme Benoit
Étudiant
Inscription : janvier 2013
Messages : 31
Détails du profil
Informations personnelles :
Nom : Homme Benoit
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : janvier 2013
Messages : 31
Points : 0
Points : 0
Merci beaucoup pour votre aide tout fonctionne correctement !
hilibili est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h16.


 
 
 
 
Partenaires

Hébergement Web