Remove array elements but also store the element indices that were not removed
조회 수: 2(최근 30일)
I have a long array e.g. a = ["a", "b", "c", "d", "e" ,"f"]
I want to remove first and 5th element. u = [1,5]
For that I can do a(u) = 
But I also want the element indices that were not removed i.e. I want output as [2 3 4 6]
I tried a(~u) but it is not working.
Steven Lord 2022년 11월 23일
Do you want the indices or the elements that weren't deleted?
a = ["a", "b", "c", "d", "e" ,"f"];
u = [1 5];
indToKeep = setdiff(1:numel(a), u)
I'm going to make a copy of a so you can compare the original with the modified copy.
a1 = a;
deletedElements = a1(u) % Extract elements 1 and 5 first
a1(u) =  % Then delete them from the orignnal vector