Remove elements in cell array based on index of elements

30 views (last 30 days)
Hello, I would like to remove elements in a cell array based on index number from another cell array.
For example:
A = [1, 15, 25, 30] B = [1, 4]
A is the data cell array, B is the cell array with indices of elements I want to remove
Output:
A = [15, 25]
for ki = 1:length(difcell)
condition1 = cellfun(@(x)(x<0),difcell,'UniformOutput',false);
gk = cellfun(@(x) find(x==1),condition1,'UniformOutput', false);
% I'm stuck at this stage
% smcell = cellfun(@(x) x(gk), smcell, 'Uniform', 0);
end
Many thanks in advance.

Accepted Answer

Jonathan Cheong
Jonathan Cheong on 17 Mar 2021
for ki = 1:length(difceller)
condition1 = cellfun(@(x)(x<0),difceller,'UniformOutput',false);
smcellere = cellfun(@(x,y) ~y(x==1),condition1,smceller,'Uniform',0);
errorcellere = cellfun(@(x,y) ~y(x==1),condition1,errorceller,'Uniform',0);
end

More Answers (1)

Jonathan Cheong
Jonathan Cheong on 17 Mar 2021
for ki = 1:length(difcell)
condition1 = cellfun(@(x)(x<0),difcell,'UniformOutput',false);
gk = cellfun(@(x,y) y(x==1),condition1,smcell,'Uniform',0);
end
smcellclean = cellfun(@(x,y) x(~ismember(x,y)), smcell, gk,'Uniform',0);
Instead of using index I find values that are the same and removed them.

Community Treasure Hunt

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

Start Hunting!