adding elements from cell array to another

i have cell array m [1x4] [1x5] and a cell array named y whose dimensions are [1x4] [1x5]. i want to put the y cell array into m such that resulting m is [1x8] [1x5] e.g
m{1}=2 3 6 44
m{2}= 12 34 25 66
and
y{1}=10 5 1 8
y{2}=3 0 9 6 7
resulting m should be
m{1}=2 3 6 44 10 5 1 8
m{2}=12 34 25 66 3 0 9 6 7

 採用された回答

James Tursa
James Tursa 2017 年 9 月 12 日
編集済み: James Tursa 2017 年 9 月 12 日

0 投票

m = cellfun(@(A,B)[A B],m,y,'uni',false);

5 件のコメント

Shivik Garg
Shivik Garg 2017 年 9 月 12 日
thanks a lot
Shivik Garg
Shivik Garg 2017 年 9 月 12 日
編集済み: Shivik Garg 2017 年 9 月 12 日
if m initially is empty how do you add y to it using the function that you have mentioned?
James Tursa
James Tursa 2017 年 9 月 12 日
You will need to add code to initialize m. E.g., something like this
m = cell(size(y));
Or maybe you will need to have this execute conditionally, e.g.,
if( isempty(m) )
m = cell(size(y));
end
It is hard to say what the correct way of initializing m will be without seeing the code prior to the merger and where m comes from initially.
Shivik Garg
Shivik Garg 2017 年 9 月 12 日
initially m={}. i generate y of different sizes and keep adding it to m
James Tursa
James Tursa 2017 年 9 月 12 日
編集済み: James Tursa 2017 年 9 月 12 日
So, if m={} initially, then you can use the 2nd method above with the if-test. Just put that immediately prior to the cellfun call.
But, what do you mean by "generate y of different sizes"? Will y have a different number of cell elements on each iteration? E.g., is it possible that on one iteration y will have 2 vectors, but on another iteration if might have 5 vectors?

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCell Arrays についてさらに検索

タグ

質問済み:

2017 年 9 月 12 日

編集済み:

2017 年 9 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by