failing to normalize columns of matrix from 0 to 1

2 Ansichten (letzte 30 Tage)
CLAIRE
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).

Akzeptierte Antwort

Walter Roberson
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
Image Analyst am 12 Apr. 2025
for ii = 2 : 2 : size(A, 2)
A(:,ii) = rescale(A(:,ii), 0, 1);
end

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!

Translated by