MATLAB Answers

Find the equality of each value in the vector and cell array

1 view (last 30 days)
NA
NA on 9 Nov 2020
Commented: NA on 10 Nov 2020
I have
A = {1;[];1;[]};
B = [1;4;10;4];
I want to check equality of each row in the cell to the each row in the array and find the index. I use this code, but it is not correct.
temp = zeros(length(B),1);
for i=1:length(B)
if isempty(A{i})==0
temp(i) = find(isequal(A{i},B(i)));
else
temp(i) = 0;
end
end
result should be
temp =[1;0;0;0]

Accepted Answer

Sindar
Sindar on 9 Nov 2020
% better test data
A = {1;[];1;[1 4];3};
B = [1;4;10;4;3];
temp = zeros(length(B),1);
for i=1:length(B)
% isequal handles empty cells, cells with multiple elements, non-numeric contents, etc.
if isequal(A{i},B(i))
temp(i)=i;
end
end
temp
temp =
1
0
0
0
5

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!