Remove elements in cell array based on index of elements

11 ビュー (過去 30 日間)
Jonathan Cheong
Jonathan Cheong 2021 年 3 月 17 日
コメント済み: Jonathan Cheong 2021 年 3 月 17 日
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 日
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 日
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.

カテゴリ

Help Center および File ExchangeOperators and Elementary Operations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by