Subtract elements greater than a threshold?

10 visualizzazioni (ultimi 30 giorni)
I have a 2048x10000 double precision dataset. Most values range from 0 to ~5000, but there are scattered values exceeding 1,000,000. After reading the manual for the instrument, I found that for numbers greater than 524287 (2^19 - 1) you're supposed to substract 1048576 (2^20). I had thought to index the data (ind = (test > 524287)) and then subtract the values from those indexed elements but have been unable to make it happen, often receiving the error: "Unable to perform assignment because the left and right sides have a different number of elements."

Risposta accettata

Walter Roberson
Walter Roberson il 23 Gen 2020
mask = YourArray > 2^19 - 1;
YourArray(mask) = YourArray(mask) - 2^20;

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by