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)';
3 Réponses :
J'imagine que vous pouvez simplement transposer:
p = (normal(1:750)-1)'
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 ' code> (ou
Ctranspose () code>) 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
. ' Code> (ou
transpose () code>).
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(:);
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
réglage est en effet la meilleure approche, car il créera de manière fiable vecteur de colonne. p> méfiez-vous de l'utilisation du Si vous voulez faire transposer sans prendre le conjugué complexe sans prendre le conjugué complexe . p> p> ' code> 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é
. ' Code> de sorte que vous feriez: p>