How do I combine two cell arrays into one cell array?

507 ビュー (過去 30 日間)
pengcheng
pengcheng 2014 年 10 月 13 日
回答済み: Josep Llobet 2021 年 10 月 1 日
>> Q{1}
ans =
'4400002970000003533'
'4400002970000003533'
'4400002970000003535'
'4400002970000003536'
'4400002970000003533'
'4400002970000003532'
'4400002970000003537'
>> Q{2}
ans =
'4400002890000146180'
'4400002890000146180'
'4400002970000000026'
I want to get a new cell:
'4400002970000003533'
'4400002970000003533'
'4400002970000003535'
'4400002970000003536'
'4400002970000003533'
'4400002970000003532'
'4400002970000003537'
'4400002890000146180'
'4400002890000146180'
'4400002970000000026'
I don't want to use the function cell2mat, because it is too slow for my program. Do you have any good ideas?

採用された回答

Star Strider
Star Strider 2014 年 10 月 13 日
To get the result cell array ‘R’, for instance, vertically concatanate ‘Q{1}’ and ‘Q{2}’:
Q{1} = ['4400002970000003533'
'4400002970000003533'
'4400002970000003535'
'4400002970000003536'
'4400002970000003533'
'4400002970000003532'
'4400002970000003537'];
Q{2} = ['4400002890000146180'
'4400002890000146180'
'4400002970000000026'];
R = {[Q{1}; Q{2}]};
celldisp(R) % Display Result
  8 件のコメント
Adam
Adam 2014 年 10 月 13 日
I assume he is referring to the more generic answer of {[Q{:}]} which does horizontal concatenation by default.
It is one of the many cases where someone asks a question using a neat example then when given a correct answer for that it turns out they actually want to solve the general case that wasn't mentioned in the example!!
Star Strider
Star Strider 2014 年 10 月 13 日
@Adam — The vertcat function is definitely the way to go!
You’re certainly correct on your observation — in more Questions that I care to count, the instance in the question may have little bearing on actual issue!

サインインしてコメントする。

その他の回答 (2 件)

Chenchal
Chenchal 2017 年 11 月 3 日
cell2mat(Q')

Josep Llobet
Josep Llobet 2021 年 10 月 1 日
Maybe this little function could be useful:
function [celltot] = juntar_cells(cell1, cell2)
celltot = cell1;
for ll_cell2 = 1:length(cell2)
celltot{end + 1} = cell2{ll_cell2};
end
end

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by