2017-02-14 4 views
1

У меня есть матрица B (ячейка 1 * 5) Я хочу изменить ее на B (ячейка 5 * 1), зная, что каждый элемент матрицы содержит (ячейку 1 * 18) и каждый представляет собой клеткуПреобразование строки ячейки в столбец ячейки

исходная матрица

 [1]   [2]  [3]   [4]   [5]` 
[1] (1*18 cell) (1*18 cell) (1*18 cell) (1*18 cell) (1*18 cell) 

Моя цель:

1) преобразовать строку из B на колонке% попытке использовать C = A (:); И C = B. '

2) сделать B матрицей без ячеек с cell2mat% Ошибка использования cell2mat (строка 53) Невозможно поддерживать массивы ячеек, содержащие массивы ячеек или объекты.

Нужный выход:

 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] ... [18] 
    [1] 2 1.5 1.69 1.02 1  1.36 1  2  1.67 1.20 1.36 ...  
    [2] 2 1.53 1.99 1  1.36 1  2  1  1  1.99 1.02 ...  
    [3] 1.02 1  1.36 1.3 2  1.67 1.20 1.36 1.99 2  1.5 ... 
    [4] 2 1.53 1.99 1  1.36 1  2  1  1  1.36 1.99 ... 
    [5] 1.5 1.69 1.02 1.2 1.36 1  2  1  1.36 1.5 1.5 ... 

благодарит

ответ

2

Вы можете просто использовать cat (в сочетании с {} индексацию создать список разделенных запятыми), чтобы объединить все клеточные массивы в B вдоль первый размер

out = cat(1, B{:}); 

Если вы хотите, чтобы результат больше не был ячейкой, используйте cell2mat на выходе

cell2mat(out) 
Смежные вопросы