Error to applying ismember for cell arrays

조회 수: 1 (최근 30일)
Farshid Daryabor
Farshid Daryabor 2020년 2월 18일
댓글: Farshid Daryabor 2020년 2월 18일
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
Stephen23
Stephen23 2020년 2월 18일
편집: Stephen23 2020년 2월 18일
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

댓글을 달려면 로그인하십시오.

채택된 답변

KSSV
KSSV 2020년 2월 18일
load("example.mat") ;
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
KSSV
KSSV 2020년 2월 18일
Show us the whole code...in the give answer
A1(c)
works fine.
Farshid Daryabor
Farshid Daryabor 2020년 2월 18일
great, it's work to me also. Thanks

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Numeric Types에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by