How to normalize data between 0 and 1

Hello everyone, i hope you are doing well.
I have the following data.
I want to normalize the data between 0 and 1
How can i do that

답변 (3개)

Simon Chan
Simon Chan 2022년 3월 3일

1 개 추천

Another option is use function rescale
Davide Masiello
Davide Masiello 2022년 3월 3일

0 개 추천

Given the matrix A that you want to normalise, you could write
A = A/max(A(:));

댓글 수: 1

He wants the output to go between 0 and 1. Your code will not put the min at 0 unless it is already 0. The easiest solution is to just use
A = rescale(A, 0, 1);

댓글을 달려면 로그인하십시오.

Sinan Islam
Sinan Islam 2025년 2월 23일

0 개 추천

X_max = max(X);
X_min = min(X);
X_scaled = (X - X_min) ./ (X_max - X_min); % scales X to [0, 1]

댓글 수: 1

That does not work if X consists of identical values
X = [1 1 1 1]
X = 1×4
1 1 1 1
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
X_max = max(X);
X_min = min(X);
X_scaled = (X - X_min) ./ (X_max - X_min) % scales X to [0, 1]
X_scaled = 1×4
NaN NaN NaN NaN
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
rescale(X)
ans = 1×4
0 0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
The code also produces questionable values if the maximum is inf but the points are not all identical
X = [1 2 inf]
X = 1×3
1 2 Inf
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
X_max = max(X);
X_min = min(X);
X_scaled = (X - X_min) ./ (X_max - X_min) % scales X to [0, 1]
X_scaled = 1×3
0 0 NaN
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
rescale(X)
ans = 1×3
NaN NaN NaN
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
If one of the input values is -inf then the code produces all NaN

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

제품

릴리스

R2021b

질문:

2022년 3월 3일

댓글:

2025년 2월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by