Error with Min-Max Scaling
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Kyle Koutonen
le 25 Avr 2021
Commenté : Steven Lord
le 25 Avr 2021
The code below fails due to line 5, Just trying to make simple min max scaling code in range of -1 and 1
t=[ 1 5 6; 8 9 7; 2 4 5];
for i= 1:length(t)
Scale1=(t(:,i)-min(t(:,i)))/(max(t(:,i))-min(t(:,i)));
Scalef(i)=2*Scale1 -1
end
Scaled_data=Scalef
0 commentaires
Réponse acceptée
Tayyab Khalil
le 25 Avr 2021
First thing, kindly post your code inside a code block to make it easier to read.
I got your code working by simply assigning the scaled value to a column of scalef, the error was that you were trying to assign it as if it were a single value but it is not.
t=[ 1 5 6; 8 9 7; 2 4 5];
for i= 1:length(t)
Scale1=(t(:,i)-min(t(:,i)))/(max(t(:,i))-min(t(:,i)));
Scalef(:,i)=2*Scale1 -1
end
Scaled_data=Scalef
Which gives the following output:
Scaled_data =
-1.0000 -0.6000 0
1.0000 1.0000 1.0000
-0.7143 -1.0000 -1.0000
I don't know if this is what you're looking for, seems to be scaling each column between -1 and 1.
Plus de réponses (1)
Steven Lord
le 25 Avr 2021
t = [ 1 5 6; 8 9 7; 2 4 5]
t2 = normalize(t, 'range', [-1 1])
You can also specify a dimension input.
t3 = normalize(t, 2, 'range', [-1 1])
2 commentaires
Steven Lord
le 25 Avr 2021
Don't use length on a non-vector especially when you want to iterate over the columns of an array.
M = zeros(5, 4);
L = length(M)
In this case L is the number of rows in M rather than the number of columns.
numRows = size(M, 1)
numCols = size(M, 2)
% If using a sufficiently recent MATLAB
numRows2 = height(M)
numCols2 = width(M)
In this other case, where M2 has more columns than rows, L2 is the number of columns in M2. But size, height, and width will always return the size in a specific dimension regardless of whether the array is a vector, a tall matrix, a wide matrix, or an N-dimensional array.
M2 = zeros(3, 17);
L2 = length(M2)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!