2013-05-02 2 views
-1

В MATLAB можно легко получить вектор из элементов матрицы в колонке главного порядка, используя (:) оператор следующим образом ...В MATLAB, почему я не могу составить транспонирование и двоеточие?

EDU>> A 

A = 

    1  2 
    3  4 
    5  6 

EDU>> A(:) 

ans = 

    1 
    3 
    5 
    2 
    4 
    6 

Однако, я хотел бы получить вектор элементов в основном порядке. Поэтому я решил, что я перенесу матрицу перед использованием (:). Но я получаю эту ошибку ...

EDU>> A'(:) 
A'(:) 
    | 
Error: Unbalanced or unexpected parenthesis or bracket. 

Почему не 'и (:) составляют здесь? Я могу сделать это за 2 шага, но я предпочел бы быть более кратким и избегать дополнительной переменной.

EDU>> B = A' 

B = 

    1  3  5 
    2  4  6 

EDU>> B(:) 

ans = 

    1 
    2 
    3 
    4 
    5 
    6 

Почему я не могу сделать это за 1 шаг, составив 'и (:)? Каков правильный способ сделать это?

Спасибо, ~ Патрон

+5

Это в основном дублирует [этот вопрос] (http://stackoverflow.com/q/2724020/52738). Кроме того, [этот связанный вопрос] (http://stackoverflow.com/q/3627107/52738) далее описывает, как оператор индексирования '()' не может выполнять определенные операции, если только вы не включите его в вызов функции. – gnovice

+0

Спасибо, мой главный вопрос был о втором вопросе относительно оператора индексирования. Интересно, что Октав, похоже, не страдает от этой проблемы. – Chuck

ответ

3

Использование перекроить возможно

reshape(A',prod(size(A)),1) 
+0

что с этим? –

+2

Кажется, все в порядке. Извините, кто-то проголосовал за вас. – Chuck

+0

Я собираюсь удалить свое сообщение, которое было таким же, как ваше, но ранее. кто-то вокруг не доволен. Если ответ не совсем то, что они хотят, то почему они должны легко давать людям нисходящее движение. – NKN

Смежные вопросы