failing to normalize columns of matrix from 0 to 1
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
CLAIRE
am 12 Apr. 2025
Beantwortet: Image Analyst
am 12 Apr. 2025
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).
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 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
Weitere Antworten (1)
Image Analyst
am 12 Apr. 2025
Try rescale
for ii = 2 : 2 : size(A, 2)
A(:,ii) = rescale(A(:,ii), 0, 1);
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Multidimensional Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!