Rechercher : dans
Par :

[MATLAB] transformer une matrice en vecteur

Dernière réponse le 6 mai 2008 à 15:59:21 yann, le 22 fév 2008 à 11:27:02 
 Signaler ce message aux modérateurs

Bonjour,

Voila j'ai un petit problème à résoudre avec matlab, j'ai une matrice (N,2) avec N etant un nombre variable de lignes.
Je souhaiterai stocker les valeurs de cette matrice dans un vecteur ligne, en utilisant une boucle.

Pour l'instant ca donne a peu pres ca:

BC=[0 1;0 0;1 1]

For i = 1:1:N
BCvecteur = [BC(i,:)]
end

Avec ceci, j'extrais chaque ligne de la matrice,
BCvecteur =

0 1


BCvecteur =

0 0


BCvecteur =

1 1

A ce stade, je souhaiterai obtenir un vecteur BCvecteur = [0 1 0 0 1 1].

Merci pour votre aide, bonne journée

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « [MATLAB] transformer une matrice en vecteur » dans :
Représentation des courbes sous Matlab Voir La fonction plot permet essentiellement de tracer des courbes sous Matlab. Dans cette astuce, nous allons essayer de détailler le fonctionnement de cette commande. Simple utilisation Vecteur Matrice Vecteur en fonction d'un autre Autres...
Concaténer les vecteurs ou les matrices sous Matlab VoirL'opération de concaténation des variables de Matlab consiste à regrouper ces variables dans une seule (vecteur ou matrice). Exemple : |2 3 4| X= |1 2 5| |0 2 7| Avec : |9 6 8| Y= |5 6 2| |3 2 1| Donne...
Manipulations élémentaires des tableaux sous MatLab VoirSommaire I. Stockage des tableaux II. L'indexation linéaire II.1. Accéder à un élément d'un tableau en utilisant l'indexation linéaire II.2. Passer d'une indexation à l'autre II.2.1. La fonction ind2sub II.2.2. La fonction sub2ind III. La...
La vectorialisation sous MatLab VoirVectorialisation sous Matlab Sommaire I. Le logiciel MatLab II. Configuration matérielle pour les tests III. Comment vectorialiser un calcul IV. Expérience sur un exemple concret IV.1. Exemple concret choisi IV.2. Programme non...
Images bitmap et vectorielles VoirImages bitmap et images vectorielles On distingue généralement deux grandes catégories d'images : les images bitmap (appelées aussi images raster) : il s'agit d'images pixellisées, c'est-à-dire un ensemble de points (pixels) contenus dans un...

1

yababas, le 22 fév 2008 à 11:46:53

Utilise la commande reshape. ("help reshape" pour avoir les infos)

Si tu as
BC=[0 1;0 0;1 1]
reshape(BC,1,6) te donne [0 0 1 1 0 1] (il parcourt la matrice colonne par colonne).

Donc ce qu'il te faut faire c'est : reshape(BC',1,6)
Ainsi les lignes deviennent les colonnes et vice versa et la matrice sera parcourue dans le sens qui te convient.

Si tu as size(BC) = [N,2], alors tu dois faire reshape(BC',1,2*N).


Si vraiment tu veux utiliser une boucle malgré tout (ne serait-ce que pour l'aspect pédagogique...) il te faut faire :

[NI,NJ] = size(BC);

% créer un vecteur contenant autant de case que la matrice BC
Z = zeros(1,NI*NJ);

% pour chacune des lignes
for i = 1:NI
% parcours de la ligne
for j=1:NJ %ou bien : for j=1:2 si tu sais que NJ==2
Z(NJ*(i-1)+j) = BC(i,j);
end
end

Voilà.
J'espère que c'est bon comme ça.
Ciao.
Yababas.

Répondre à yababas

2

Char Snipeur, le 22 fév 2008 à 11:49:17

Utilise la concaténation :

R=[];
for i=1:N
    R=[R BC(i,:)];
end

Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur

Répondre à Char Snipeur

3

yann, le 22 fév 2008 à 11:59:38

Ok merci bien pour votre aide,

bonne journée

Répondre à yann

4

Dister, le 6 mai 2008 à 15:41:43

Comment on fait le chemain inverse , de vecteur vers une matrice
Ex: A=[ a b c d e f g h i] je vais la transformer en
B=[a b c d,e f g h i]
Merci

Répondre à Dister

5

 Char Snipeur, le 6 mai 2008 à 15:59:21

B=[A(1:4);A(5:8)]; Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur