Преобразование матрицы в вектор в Matlab - PullRequest
5 голосов
/ 28 апреля 2011

У меня есть матрица MxN, и я хочу преобразовать ее в вектор MNx1 со всеми элементами строки из матрицы в качестве элементов вектора.

Я пытался использовать reshape, но не былуспешный.

Вот небольшой фрагмент кода и ожидаемый результат.

  S=[0     1
     1     0
     1     1
     1     1 ]

Ожидаемый результат:

S_prime= [ 0 1 1 0 1 1 1 1]

PS: использование цикла и конкатенации не вариант,Я уверен, что есть простой прямой метод, который я не знаю.

Спасибо

Ответы [ 3 ]

8 голосов
/ 28 апреля 2011

Вы можете попробовать транспонировать S и использовать (:)

S = S'
S_prime = S(:)

или для вектора строки:

S_prime = S(:)'
4 голосов
/ 28 апреля 2011

Reshape использует столбец элементов, поэтому перед изменением транспонируйте S.

>> reshape(S',1,[])

ans =

     0     1     1     0     1     1     1     1
1 голос
/ 28 апреля 2011
reshape(S',1,prod(size(S)))

или ярлык

reshape(S',1,[])

Но этот вопрос заставляет меня задуматься, какова ваша первоначальная проблема, и действительно ли этот путь является частью правильного решения исходной проблемы.

...