Error to applying ismember for cell arrays
조회 수: 1 (최근 30일)
이전 댓글 표시
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
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
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Numeric Types에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!