# Error to applying ismember for cell arrays

5 visualizzazioni (ultimi 30 giorni)
Farshid Daryabor il 18 Feb 2020
Commentato: Farshid Daryabor il 18 Feb 2020
I really thanks in advance any help. I am trying to use the below command to find any variable from the A member of the B, but encountering with the error. Welcome any suggestion.
[~,JINDX] = cellfun(@(x)(ismember(B,x)),A,'Uni',false);
Error using cell/ismember (line 34)
Input A of class cell and input B of class char must be cell arrays of strings, unless one is a string.
Error in @(x)(ismember(B,x))
34 error(message('MATLAB:ISMEMBER:InputClass',class(a),class(b)));
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Stephen23 il 18 Feb 2020
Modificato: Stephen23 il 18 Feb 2020
It is not clear what you expect. Cell array A contains Rx1 character arrays,e.g.:
>> A{1}
ans =
6
9
0
0
8
0
5
while cell array B contains scalar numerics (which would be much better store in once numeric array):
>> B{1}
ans = 6900805
Do you expect that Rx1 character vector to be equivalent to that numeric scalar? For example:
>> Anum = str2double(cellfun(@(v)v(:).',A,'uni',0));
>> Bnum = [B{:}];
>> idx = ismember(Bnum,Anum)
idx =
1 0 0 0 0 0 0 0 0 0

Accedi per commentare.

### Risposta accettata

KSSV il 18 Feb 2020
N = length(A) ;
A1 =zeros(N,1) ;
for i = 1:N
A1(i) = str2num(A{i}') ;
end
B1 = cell2mat(B)' ;
[c,ia] = ismemebr(A1,B1) ;
##### 6 CommentiMostra 4 commenti meno recentiNascondi 4 commenti meno recenti
KSSV il 18 Feb 2020
Show us the whole code...in the give answer
A1(c)
works fine.
Farshid Daryabor il 18 Feb 2020
great, it's work to me also. Thanks

Accedi per commentare.

### Categorie

Scopri di più su Data Type Identification in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by