Rescale values based on a particular value

7 visualizaciones (últimos 30 días)
Giggs B.
Giggs B. el 13 de Mzo. de 2022
Comentada: Giggs B. el 14 de Mzo. de 2022
Hi,
I have a .csv file with ~200k values. I want to rescale the values to range -1 to +1. I know the rescale function can do this.
However, what I want to do is, I want the scaling to happen based on the max and min range that I provide and not the max and min values in the file itself. To give an example: the file contains values ranging from 2500-2800. I want to rescale it from -1 to +1 but -1 should correspond to 2300 and +1 should correspond to 3000.
How can I do it? I don't think rescale function provides this functionality. Is there any function for it? I have attached my file.
Thanks, Gagan

Respuesta aceptada

Simon Chan
Simon Chan el 13 de Mzo. de 2022
Try the following:
data = readmatrix('https://www.mathworks.com/matlabcentral/answers/uploaded_files/925044/w3.csv');
rescale_data = rescale(data,-1,1,'InputMin',2300,'InputMax',3000);
subplot(2,1,1);
plot(data);
ylim([2300 3000]);
subplot(2,1,2);
plot(rescale_data);
  5 comentarios
Image Analyst
Image Analyst el 13 de Mzo. de 2022
Maybe try soundsc() which scales audio so you can hear it.
Giggs B.
Giggs B. el 14 de Mzo. de 2022
Hi, I think soundsc() does the samething what "rescale + sound" functions together do.
However, rescale also provides the flexibiity of setting 'InputMin' and 'InputMax' values which soundsc() does not provide.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Audio I/O and Waveform Generation en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by