2013-09-16 5 views
0

У меня есть массив ячеек, содержащий 1x4 клеткиМассив ячеек массив, содержащий клетки в MATLAB

A= 
<1x4 cell> <1x4 cell> <1x4 cell> 
<1x4 cell> <1x4 cell> <1x4 cell> 
<1x4 cell> <1x4 cell> <1x4 cell> 
<1x4 cell> <1x4 cell> <1x4 cell> 
<1x4 cell> <1x4 cell> <1x4 cell> 
<1x4 cell> <1x4 cell> <1x4 cell> 
<1x4 cell> <1x4 cell> <1x4 cell> 
<1x4 cell> <1x4 cell> <1x4 cell> 
<1x4 cell> <1x4 cell> <1x4 cell> 
<1x4 cell> <1x4 cell> <1x4 cell> 

То, что я ищу, чтобы сделать массив ячеек, содержащий что-то вроде следующего

B={'str1','str2','str3','str4';cell2mat(A{1,1})} 

A массив ячеек поступает из других операций, в которых размер строк и столбцов может меняться, поэтому я хотел бы знать погоду или нет, это можно было бы автоматизировать с помощью цикла for или чего-то подобного.

Edit: Жаль, что я хотел бы иметь массив B:

B{m,n}={'str1','str2','str3','str4';cell2mat(A{m,n})} 

где m и n являются строки и столбцы массива ячеек A.

Так позволяет сказать, что есть что-то вроде

A= 
[1 2 3 4] [4 5 6 7] 
[8 9 10 11] [11 12 13 14] 

Я хотел бы получить выход B формы

B{1}= 
'str1' 'str2' 'str3' 'str4' 
    1  2  3  4 
    8  9 10 11 
B{2}= 
'str1' 'str2' 'str3' 'str4' 
    4  5.  6  7 
11  12  13  14 
+0

более конкретно, и дайте нам пример одной из ячеек 'A', и как вы ожидаете, что соответствующая ячейка на выходе' B' будет ... – Amro

+0

Я боюсь, что все еще недостаточно ясно. Каков размер A, а затем размер B? – Amro

+0

вам нужно заменить 'cell2mat' на' num2cell' –

ответ

0

Вы можете сделать:

B = cellfun(@(x) {'str1','str2','str3','str4',cell2mat(x)}, A, 'Uniform',false); 

или

B = cellfun(@(x) ['str1','str2','str3','str4',x], A, 'UniformOutput',false); 

в зависимости от того, хотите ли вы «сгладить» элементы или нет в каждой ячейке. Трудно сказать, не зная, что внутри каждой ячейки A{m,n}.

+0

См. Мое редактирование – user2751649

Смежные вопросы