Попробуйте с:
output = reshape(A.', numel(A), 1);
>> A = rand(4,3);
>> output = reshape(A.', numel(A), 1);
A =
0.447213 0.046896 0.679087
0.903294 0.768745 0.651481
0.701071 0.122534 0.611390
0.535844 0.478595 0.772810
output =
0.447213
0.046896
0.679087
0.903294
0.768745
0.651481
0.701071
0.122534
0.611390
0.535844
0.478595
0.772810
Берегитесь, что Reshape считывает матрицы доступа вдоль столбцов, так что вы, возможно, не потребуется транспонировать матрицу А.
Кроме того, помните, что оператор '
является эрмитовым оператором, а именно сопряженным транспонированным, тогда как .'
- это просто транспозиция, Получаем также транспонирование (A).
Возможно, вы захотите сделать все в одной строке, не перепечатывая каждый раз. Одним из решений является создание дескрипторов функций в виде бункера:
>> boop = @(x) reshape(transpose(x), numel(x), 1)
>> output = boop(A)
output =
0.447213
0.046896
0.679087
0.903294
0.768745
0.651481
0.701071
0.122534
0.611390
0.535844
0.478595
0.772810
спасибо, это работает – Immo