Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to index all but select indices?

Tags:

arrays

julia

I have an array a=rand(100), I want to get every value except the values at the indices notidx=[2;50]. Is there a clean way to get a at the other values? I am looking for a good way to do both a copy and a view.

Currently I make the array [1;3:49;51:100] by symdiff(1:100,notidx), but a[symdiff(1:length(a),notidx)] and view(a,a[symdiff(1:length(a),notidx)]) are not very clean (or understandable to others) ways of doing this.

like image 483
Chris Rackauckas Avatar asked Sep 09 '16 06:09

Chris Rackauckas


1 Answers

I don't have anything super clean, but you can do

a[setdiff(1:end, notidx)]

which is slightly cleaner than what you had, or

ind = trues(length(a))
ind[notidx] = false
a[ind]

which is pretty verbose but very clear.

like image 195
DNF Avatar answered Oct 16 '22 06:10

DNF