2015-09-08 2 views
1

Если у меня есть матрица A в такой форме:Объединения подмножества столбцов

4 7 10 5 
5 8 1 6 
6 9 2 9 
6 10 6 11 

есть более краткий и эффективный способ объединить подмножество столбцов в особые столбцы, то есть взять A (:, 1: 2) и объединить его в один столбец, а также для A (:, 3: 4), кроме как делать это шаг за шагом? то есть:

B = A(:,1:2); 
B = B(:); 
C = A(:,3:4); 
C = C(:); 
out = horzcat(B,C); 
+0

Слияние первых двух столбцов и двух последних столбцов - единственное, что вы хотите сделать, или есть более общий случай? – rayryeng

+0

Более общий случай, с возможностью изменения количества объединяемых столбцов. – AnnaSchumann

+0

Итак, предположим, что у нас была 12-ти столбцовая матрица ... вам нужно что-то, где дано список индексов ... например '[3 4], [2 5], [7 9]', вам нужно три которая объединяет столбцы 3-4 для первого столбца, 2-5 для второго столбца и 7-9 для третьего столбца? Если возможно, укажите более подробные указания относительно того, что вы хотите. – rayryeng

ответ

2

Вы можете использовать reshape. Принимая ваш пример:

out2 = reshape(A, size(A,1)*2, []) 
Смежные вопросы