How to keep values whose corresponding index is present?
Mostra commenti meno recenti
Hi all
array1 = {1,1,1,0.92,0.61,0.47,0,0;1.6,1,1,1,0.6,0.5,0.4,0.8};
array2 = {[3,4,5,6];[4,5,7,8]};
I need to keep only those values in array 1 whose corresponding index value is present in array2. e.g. Result may look like this:
ResultantArray = {[1,0.92,0.61,0.47];[1,0.6,0.4,0.8]}
Thanks in advance.
Risposta accettata
Più risposte (1)
Star Strider
il 3 Gen 2018
Try this:
array1 = {1,1,1,0.92,0.61,0.47,0,0;1.6,1,1,1,0.6,0.5,0.4,0.8};
array2 = {[3,4,5,6];[4,5,7,8]};
ResultantArray = cellfun(@(idx) array1(:,idx), array2, 'Uni',0);
ResultantArray{1}(1,:)
ResultantArray{2}(2,:)
ans =
1×4 cell array
{[1]} {[0.9200]} {[0.6100]} {[0.4700]}
ans =
1×4 cell array
{[1]} {[0.6000]} {[0.4000]} {[0.8000]}
1 Commento
lucksBi
il 3 Gen 2018
Categorie
Scopri di più su Matrices and Arrays in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!