Matlab: как объединить разные матрицы? - PullRequest
0 голосов
/ 16 февраля 2012

Например, у меня есть 6 аналогичных Матриц (Матрица А1-А6), но с разными данными.

Матрица А1:

2011/1/1 23,00 33,00 23,00 35,00 ...

2011/1/2 19,00 20,00 22,00 22,00 ... ...

Я хочу объединить эти 6 матриц и создать новую матрицу B.

Матрица B будет иметь: 6 столбцов, а длина строки равна (длина (столбец A) -1).

Первый столбец матрицы B - это первая строка матрицы A1 (исключая дату).

Второй столбец матрицы B - это первая строка матрицы A2 (исключая дату) ... и т. Д. *

Я ищу сценарий. Спасибо!

1 Ответ

2 голосов
/ 16 февраля 2012
B = [A1(1,2:end); A2(1,2:end); A3(1,2:end); A4(1,2:end); A5(1,2:end); A6(1,2:end)]';

или

B = [A1(1,2:end)' A2(1,2:end)' A3(1,2:end)' A4(1,2:end)' A5(1,2:end)' A6(1,2:end)'];

UPDATE

Вместо нескольких матриц с разными именами рассмотрите возможность использования массива ячеек, где каждая ячейка содержит матрицу. Если A является массивом ячеек,

A = {A1, A2, A3, A4, A5, A6};

тогда вы можете получить доступ к k-й матрице как A{k}. В этом случае вы можете иметь различное количество матриц в массиве ячеек и получить B векторизованным способом, используя, например, этот код:

B = cell2mat(cellfun(@(x) x(1,2:end)', A, 'uniformoutput',0));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...