10
votes

Changer la ligne vectorielle sur le vecteur de colonne

Comment puis-je modifier cela en une colonne, au moment où les 750 entrées sont sur une ligne?

rows = 1000;
p = normal(1:750)-1;
p = p(1:rows)';


0 commentaires

3 Réponses :


6
votes

J'imagine que vous pouvez simplement transposer:

p = (normal(1:750)-1)'


3 commentaires

Merci Dan n'a pas pu trouver que nulle part dans la documentation! question précédente est pourquoi j'ai demandé.


Bien sûr, ceci est probablement ce que vous essayiez dans votre première tentative: p = p (1: longueur (p), 1); mais utiliser 'pour transposer est définitivement la bonne approche.


Si quelqu'un utilise des nombres complexes, notez que le ' (ou Ctranspose () ) est la transposition complexe de conjugué. Plus d'informations dans la documentation ici: mathworks.com/help/matlab/ref/ctranspose .html . Si vous souhaitez que la transposition de non-correction, utilisez . ' (ou transpose () ).



33
votes

Il est courant de pratique à Matlab d'utiliser le Colon code > opérateur : code> pour la conversion n'importe quoi em> dans un vecteur de colonne. Sans connaître ou soigner si normal code> est un vecteur de ligne ou un vecteur de colonne, vous pouvez forcer p code> pour être un vecteur de colonne, comme:

p = p(:);


4 commentaires

Ainsi, A = 1: 5 génère un vecteur de ligne, mais b = a (:) est un vecteur de colonne?


Ceci est ma méthode préférée, car elle ne convertira pas un vecteur de colonne à un vecteur de ligne si vous aviez déjà un vecteur de colonne.


@Tanwang parce que c'est ainsi que les programmeurs de Matlab voulaient que cela fonctionne.


Très agréable! C'est exactement la chose dont j'avais besoin et je pourrais miroir @raoulcousines



5
votes

réglage xxx

est en effet la meilleure approche, car il créera de manière fiable vecteur de colonne.

méfiez-vous de l'utilisation du ' opérateur à faire transposer. Je l'ai vu échoué de façon spectaculaire plusieurs fois. L'opérateur MATLAB pour la transposition non conjuguée est en réalité . ' de sorte que vous feriez: xxx

Si vous voulez faire transposer sans prendre le conjugué complexe sans prendre le conjugué complexe .


0 commentaires