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 件のコメント

Jonathan Cheong
Jonathan Cheong 2021 年 3 月 17 日
Just to clarify!
'gk' is the index cell array
'smcell' is the data cell array

サインインしてコメントする。

 採用された回答

Jonathan Cheong
Jonathan Cheong 2021 年 3 月 17 日

0 投票

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

1 件のコメント

Jonathan Cheong
Jonathan Cheong 2021 年 3 月 17 日
This answer removes based on Index

サインインしてコメントする。

その他の回答 (1 件)

Jonathan Cheong
Jonathan Cheong 2021 年 3 月 17 日

0 投票

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.

カテゴリ

ヘルプ センター および File Exchange で Operators and Elementary Operations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by