How to insert the missing number into the cell array?

Suppose that I have this
I=[3 5 6 8 10 11]
A={[3];[6;8];[];[11]}
How to find the missing number of I in A and insert that number into any position of A? for intance like:
A={[3];[6;8];[5];[10;11]}

4 commentaires

KSSV
KSSV le 14 Mai 2019
YOu have I in hand always?
yes I have I in hand, it would be changed depend on my input.
Akira Agata
Akira Agata le 14 Mai 2019
Modifié(e) : Akira Agata le 14 Mai 2019
One quick question:
How did you define the position of '10' in your cell array A?
It will be random sir. That is just my example, I want to randomly insert the missing numbers into A, not only the empty cell

Connectez-vous pour commenter.

 Réponse acceptée

I=[3 5 6 8 10 11] ;
A={[3];[6;8];[];[11]} ;
% get empty cell
idx = cellfun(@isempty,A) ;
A{idx} = setdiff(I,cell2mat(A))

11 commentaires

Thank you, but I want to insert in any position not only the empty cell. and it's should display as 1 column. Yours is 1x2
A =
4×1 cell array
{[ 3]}
{2×1 double}
{1×2 double}
{[ 11]}
I inserted in the empty cell, the elements left in I. YOu can use the following:
A{1}(end+1) = 5 ; % this will insert in first cell in second position
Thank you for your time! But with that way it is just manually input
KSSV
KSSV le 14 Mai 2019
Then how you want?
Because I have here are 2 missing numbers, and I don't know these two, How can I use
A{1}(end+1) = 5 ;
I have showed you how to get missing numbers already. :
miss = setdiff(I,cell2mat(A))
this setdiff found 2 numbers but the A{1}(end+1) is only 1 position, so it doesn't work. And do you have any way to ramdom insert instead of typing the position?
idx = randsample(length(A),1)
Thank you, but Do you get my point? I already tried this
I=[3 5 6 8 10 11] ;
A={[3];[6; 8];[];[11]} ;
% get empty cell
idx = randi(size(A,1))
A{idx}= setdiff(I,cell2mat(A))
Could you please make this with your way?
A={[3];[6;8];[5];[10;11]}
I=[3 5 6 8 10 11] ;
A={[3];[6;8];[];[11]} ;
% get empty cell
idx = cellfun(@isempty,A) ;
missing = setdiff(I,cell2mat(A)) ;
A{idx} = missing(1)
Hang Vu
Hang Vu le 14 Mai 2019
Modifié(e) : Hang Vu le 14 Mai 2019
Thank you so much! I modified a bit and it worked.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by