Replace missing elements in an array with NaN
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Anantha Padmanabhan
am 4 Okt. 2016
Bearbeitet: Thorsten
am 4 Okt. 2016
Hello! for i=1:n
scanindex = round((i-1)*pointsperscan+1):round(i*pointsperscan);
filterindex == (i-1)*pointsperscan+find(vlos(scanindex)<=blade_flicker_threshold&...
quality(scanindex)>=quality_range(1)&...
quality(scanindex)<=quality_range(2)&...
power(scanindex)>=power_range(1)&...
power(scanindex)<=power_range(2))';
So i have this code. Scan index reads the entire second values with 312 entries and the filterindex filters based on the scan parameters which results in an array less than 312 entries. I want to keep the size of the filterindex same as the scanindex as I need to rewrite the code for more general purposes and so I was thinking if there was a way to replace the indeces which do not match the filter parameters with NaN values. So the output should read that the size of scanindex and the filterindex are the same!
Thanks
0 Kommentare
Akzeptierte Antwort
Thorsten
am 4 Okt. 2016
You can add the needed number of NaNs to the filterindex;
filterindex(end+1:numel(scanindex) = NaN;
2 Kommentare
Thorsten
am 4 Okt. 2016
Bearbeitet: Thorsten
am 4 Okt. 2016
I see. I think that you can use logical indexing to solve your problem:
filterindex = nan(size(scanindex));
fi = (i-1)*pointsperscan+find(vlos(scanindex)<=blade_flicker_threshold&...
quality(scanindex)>=quality_range(1)&...
quality(scanindex)<=quality_range(2)&...
power(scanindex)>=power_range(1)&...
power(scanindex)<=power_range(2))';
filterindex(fi) = true;
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!