Convert contents of array into index
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Kash022
il 15 Nov 2016
Commentato: Alexandra Harkai
il 15 Nov 2016
Hello,
I have an array. 1x3127 double which contains the indexes of another array. I want to use those index values to index another array and make those points =0
So for example,
col = [21 34 56 78 54 99];
l(col) = 0; % where l is another array for which I want l(21),l(34),l(56) = 0 etc.
I tried using the following code snippet but it does not work.
col = find(l<0);
for ii = 1:length(col)
a= cell2mat(ii);
l(a) = 0;
end
Please help! Thanks!
0 Commenti
Risposta accettata
Alexandra Harkai
il 15 Nov 2016
Your first code should work.
l = ones(1, 10000); % make sure this is bigger than the largest index col will specify
col = [21 34 56 78 54 99];
l(col) = 0; % this makes the 21st, 34th, 56th, etc. elements 0
1 Commento
Alexandra Harkai
il 15 Nov 2016
Your second code does not work because col is not used anywhere.
col = find(l<0); % this is a 0-1 vector, 1 indicating where l has a negative element
for ii = 1:length(col) % length of col is the number of negative elements in l
a = cell2mat(ii); % this doesn't use col at all
l(a) = 0; % so this puts the 0s in the wrong places
end
This essentially counts how many negative elements are there in vector l (let's say n), then changes the first n elements of l to 0.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Operators and Elementary Operations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!