У меня есть матрица 2D, где № столбцов всегда кратны 3 (например 250×27
) - из-за повторяющуюся организацию результатов (A,B,C
, A,B,C
, A,B,C
, и так далее). Я хочу изменить эту матрицу, чтобы создать новую матрицу с тремя столбцами - каждая из которых содержит агрегированные данные для каждого типа (A,B,C
) (например, 2250×3
).Сворачивания матрицы на столбцы
Таким образом, в матрице 250×27
все данные в столбцах 1,4,7,10,13,16,19,22,25
будут объединены, чтобы сформировать первый столбец результирующей матрицы с преобразованием.
Второй столбец в полученной реконструированной матрице будет содержать все данные из столбцов 2,5,8,11,14,17,20,23,26
- и так далее.
Есть ли простой способ сделать это в MATLAB? Я только знаю, как использовать reshape
, если столбцы, которые я хотел объединить соседствовали (1,2,3,4,5,6
), а не несмежных (1,4,7,10,13,16
) и т.д.
Я полагаю, что это можно сделать более компактным, пропуская средний блок и использование 'B (:)' в последнем блоке, но в целом это похоже на правильный путь. –