Hellow everyone! I have 2 cells.
A = '1,2,3';
B= '1,4,5,6';
But, When i try to use intersect function to get the common element(s) as my result, say
C = intersect(A, B);
I am getting an empty cell like this.
C =
Empty cell array: 1-by-0
Kindly help me, My result shall show like
C='1'
Your help will be highly appreciated!

4 commentaires

Hi,
I think your A and B are:
A = {'1,2,3'};
B = {'1,4,5,6'};
This means A is a cell containing the string '1,2,3' and B is a cell containing the string '1,4,5,6'. These strings are different, so the intersection of A and B is empty.
To get what you want, the numbers should be separated (different strings, or just numbers).
How are A and B defined in your code?
Stephen23
Stephen23 le 22 Juin 2017
"Problem with "Intersect" function"
There is no problem with intersect: you have given it two cell arrays containing different strings, so clearly the intersection is an empty cell array. This is exactly as the documentation states.
pradeep kumar
pradeep kumar le 22 Juin 2017
@ Alice! Yes, A & B are different cells and contain strings. Please tell me how can i break them to individual number (or strings) to get my job done.
@ Stephen Cobeldick , You mean to say my cells should look like the following .
A={'1','2','3'};
B={'1','4','5','6'};
Kindly tell me, how can i achieve this?

Connectez-vous pour commenter.

 Réponse acceptée

Jan
Jan le 22 Juin 2017
Modifié(e) : Jan le 22 Juin 2017

0 votes

But the shown code works:
A = '1,2,3';
B = '1,4,5,6';
C = intersect(A, B);
% C = ',1' % The commonly appearing characters ',' and '1'
According to the posted code, A and B are not cells, but char vectors, also called strings.
If you want to treat the numbers as numbers:
An = sscanf(A, '%g,');
Bn = sscanf(B, '%g,');
Cn = intersect(An, Bn)
% C = 1
If A and B are cells, use "A{1}" and "B{1}" instead.
It depends on your specific problem if the input data should be
A = {'1','2','3'};
or
A = [1,2,3]
Most likely you do not have to convert the cell string {'1,2,3'}, if you choose the rigth method to obtain the data at the beginning. Where do these data come from?

Plus de réponses (1)

KSSV
KSSV le 22 Juin 2017

0 votes

A = [1,2,3] ;
B = [1,4,5,6];
intersect(A,B)
OR
A = '1,2,3';
B= '1,4,5,6';
intersect(str2num(A),str2num(B))

1 commentaire

@ KSSV, str2num doesn't work, since A and B are 2 cells. It shows the following error.
Error using str2num (line 32)
Requires string or character array input.
Kindly help me.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Data Type Identification dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by