Converting a Data Array into a Larger Array Given a Logical Array

I'm attempting to apply a small data set onto a larger array given a logical array and can't figure out how to tackle the problem. As an example given a much smaller array.
Logical Array [1,0,1,0,1,0,0,0,1]
Data Array [5,3,7,4]
Output [5,0,3,0,7,0,0,0,4]
Any guidance would be apprieciated.

 Réponse acceptée

Stephen23
Stephen23 le 7 Oct 2020
Modifié(e) : Stephen23 le 7 Oct 2020
>> idx = logical([1,0,1,0,1,0,0,0,1]);
>> dat = [5,3,7,4];
>> out = zeros(size(idx)); % preallocate
>> out(idx) = dat
out =
5 0 3 0 7 0 0 0 4

Plus de réponses (0)

Catégories

En savoir plus sur Simulink dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by