2012-11-16 14 views
5

Jak zmienić to w kolumnę, w tej chwili wszystkie 750 wpisów znajduje się w jednym wierszu?Zmień wektor wiersza na wektor kolumnowy

p = normal(1:750)-1; 

Próbowałem:

columns = 1; 
p = normal(1:750)-1; 
p = p(1:columns); 

Próbowałem również:

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

Odpowiedz

6

Mogę sobie wyobrazić, można po prostu transpozycji:

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

Dzięki Dan nie mógł znaleźć nigdzie w dokumentacji! [poprzednie pytanie] (http://stackoverflow.com/questions/13412283/matching-row-samples-to-class-labels) jest powodem, dla którego zapytałem. –

+1

na pewno btw to prawdopodobnie to, co próbowaliście przy pierwszej próbie: p = p (1: length (p), 1); ale użycie "do transpozycji" jest zdecydowanie właściwym podejściem. – Dan

+1

Jeśli ktoś używa liczb zespolonych, należy zwrócić uwagę, że operator '' '(lub' ctranspose() ') jest złożoną koniugacją transpozycyjną. Więcej informacji w dokumentacji tutaj: https://www.mathworks.com/help/matlab/ref/ctranspose.html. Jeśli chcesz dokonać nieskonfiguracji, użyj zamiast niej '.'' (lub' transpose() '). – jvriesem

22

Jest powszechną praktyką w MATLAB do korzystania z colon operator : do zamiany dowolnego elementu na wektor kolumnowy. Nie wiedząc, czy dbanie jeśli normal jest wektorem wiersza lub kolumny wektor, można wymusić p być wektorem kolumny, tak jak poniżej:

p = p(:); 

Po tym, p jest gwarantowana być wektorem kolumny.

+0

A więc, a = 1: 5 generuje wektor wiersza, ale b = a (:) jest wektorem kolumny? – John

+2

@John tak, dokładnie. –

+0

To jest moja preferowana metoda, ponieważ nie przekształci ona wektora kolumnowego w wektor wiersza, jeśli już w rzeczywistości był to wektor kolumnowy. – raoulcousins

3

Ustawienie p = p (:); jest rzeczywiście najlepszym podejściem.

Uwaga na użycie polecenia "do wykonania transpozycji". Widziałem, jak wiele razy drastycznie zawodziło. Operatorem matlab dla transpozycji nieskonfigurowanej jest w rzeczywistości. " więc można zrobić:

p = p.' 

jeśli chcesz zrobić transpozycji bez podejmowania złożoną sprzężoną.