Remove elements in cell array based on index of elements

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.

1 Comment

Just to clarify!
'gk' is the index cell array
'smcell' is the data cell array

Sign in to comment.

 Accepted Answer

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)

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.

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!