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

 Réponse acceptée

James Tursa
James Tursa le 12 Sep 2017
Modifié(e) : James Tursa le 12 Sep 2017
m = cellfun(@(A,B)[A B],m,y,'uni',false);

5 commentaires

Shivik Garg
Shivik Garg le 12 Sep 2017
thanks a lot
Shivik Garg
Shivik Garg le 12 Sep 2017
Modifié(e) : Shivik Garg le 12 Sep 2017
if m initially is empty how do you add y to it using the function that you have mentioned?
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 le 12 Sep 2017
initially m={}. i generate y of different sizes and keep adding it to m
James Tursa
James Tursa le 12 Sep 2017
Modifié(e) : James Tursa le 12 Sep 2017
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?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by