Rescale values based on a particular value

7 ビュー (過去 30 日間)
Giggs B.
Giggs B. 2022 年 3 月 13 日
コメント済み: Giggs B. 2022 年 3 月 14 日
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

採用された回答

Simon Chan
Simon Chan 2022 年 3 月 13 日
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 件のコメント
Image Analyst
Image Analyst 2022 年 3 月 13 日
Maybe try soundsc() which scales audio so you can hear it.
Giggs B.
Giggs B. 2022 年 3 月 14 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAudio I/O and Waveform Generation についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by