failing to normalize columns of matrix from 0 to 1

4 visualizzazioni (ultimi 30 giorni)
for ii=[2 4 6 8 10 12 14 16 18 20 22 26]
n=(A-min(A(:,ii)))/(max(A(:,ii))-min(A(:,ii)));
end
I have a 526x26 matrix, and I need the data in the even-numbered columns to be between 0 and 1. Using the code above, I am getting numbers slightly above 1 (for example, 1.01977).

Risposta accettata

Walter Roberson
Walter Roberson il 12 Apr 2025
Perhaps you want something like
n = A;
for ii=[2 4 6 8 10 12 14 16 18 20 22 26]
n(:,ii) = (A(:,ii)-min(A(:,ii)))/(max(A(:,ii))-min(A(:,ii)));
end
Otherwise you are selecting one column at a time to scale against, but you are scaling the entire matrix A against the values from the column, and you are not saving the results either, so the end result is the same as if you had only done for ii=26

Più risposte (1)

Image Analyst
Image Analyst il 12 Apr 2025
for ii = 2 : 2 : size(A, 2)
A(:,ii) = rescale(A(:,ii), 0, 1);
end

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by