Précédent   Forum des professionnels en informatique > Environnements de développement > MATLAB
MATLAB Forum d'entraide sur MATLAB. Avant de poster -> FAQ MATLAB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2012, 02h30   #1
Invité régulier
 
Rami
Inscription : décembre 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Rami

Informations forums :
Inscription : décembre 2010
Messages : 41
Points : 5
Points : 5
Par défaut operation sur array

salut;

j'ai un vecteur a=[3 2 1];
je veux le transformer par boucle for en
new_a= [3 0 0 2 0 0 1 0 0];

comment je peux le faire?
Le_ramo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 02h33   #2
Modérateur
 
Avatar de Winjerome
 
Homme Jérôme
Inscription : septembre 2009
Messages : 3 598
Détails du profil
Informations personnelles :
Nom : Homme Jérôme
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2009
Messages : 3 598
Points : 6 824
Points : 6 824
Bonjour,

As-tu commencé à coder quelque chose?
Montre-nous ce que tu as déjà codé, même si c'est faux.
__________________
Débutant en MATLAB? Vous voulez faire une Interface Graphique? Les Tutoriels et la FAQ sont là pour vous aider
Une erreur? FAQ : Messages d'erreur et avertissements
"Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).
Citation:
En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
Je suis régulièrement sur le chat DVP - Pas de question technique par MP, Merci
Winjerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 02h56   #3
Invité régulier
 
Rami
Inscription : décembre 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Rami

Informations forums :
Inscription : décembre 2010
Messages : 41
Points : 5
Points : 5
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
clc;
clear all;
a=[3 2 1]
w=[0 0 0];

for i=1:length(a)
    pos(i)=2*i;
end
pos
tf=false(1,numel(a)+numel(w));
     r=double(tf);
     tf(pos)=true;
     r(tf)=w;
     r(~tf)=a;
     r
Le_ramo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 03h07   #4
Modérateur
 
Avatar de Winjerome
 
Homme Jérôme
Inscription : septembre 2009
Messages : 3 598
Détails du profil
Informations personnelles :
Nom : Homme Jérôme
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2009
Messages : 3 598
Points : 6 824
Points : 6 824
Pour vouloir passer par une boucle for, tu fais beaucoup en dehors...
Pour commencer, on peut remarquer que
Code :
numel(new_a) = 3*numel(a)
Donc tu peux initialiser un vecteur de zéros comme ceci:
Code :
1
2
N = 3*numel(a);
new_a = zeros(1,N);
Il te suffit ensuite de placer les valeurs de a. Et pour cela l'opérateur colon : peut t'aider:
__________________
Débutant en MATLAB? Vous voulez faire une Interface Graphique? Les Tutoriels et la FAQ sont là pour vous aider
Une erreur? FAQ : Messages d'erreur et avertissements
"Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).
Citation:
En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
Je suis régulièrement sur le chat DVP - Pas de question technique par MP, Merci
Winjerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 03h38   #5
Invité régulier
 
Rami
Inscription : décembre 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Rami

Informations forums :
Inscription : décembre 2010
Messages : 41
Points : 5
Points : 5
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clc;
clear all;
a=[3 2 1]
w=[0 0 0 0 0 0];
pos=0;
for i=1:3:3*length(a)
    i
   pos=[pos i]
end
pos=pos(1,2:length(pos));
pos
tf=false(1,numel(a)+numel(w))
     r=double(tf)
     tf(pos)=true
     r(tf)=a;
     r(~tf)=w;
     r
Merci à vous.
Le_ramo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 22h31   #6
Modérateur
 
Avatar de Winjerome
 
Homme Jérôme
Inscription : septembre 2009
Messages : 3 598
Détails du profil
Informations personnelles :
Nom : Homme Jérôme
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2009
Messages : 3 598
Points : 6 824
Points : 6 824
Beaucoup de choses inutiles et simplifications à faire:
__________________
Débutant en MATLAB? Vous voulez faire une Interface Graphique? Les Tutoriels et la FAQ sont là pour vous aider
Une erreur? FAQ : Messages d'erreur et avertissements
"Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).
Citation:
En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
Je suis régulièrement sur le chat DVP - Pas de question technique par MP, Merci
Winjerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h21.


 
 
 
 
Partenaires

Hébergement Web