How do we do operations directly on table elements in matlab?
18 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
D_coder
am 2 Jul. 2020
Kommentiert: Walter Roberson
am 2 Jul. 2020
I am thinking of doing min max normalization of my data where if x is vector the procedure is as follows x = (x- min(x))/(max(x)-min(x)). However I want to do this operation directly on the table elements which have 150 rows and 42 features and I want to normalize each of these columns. Is there any one line procedure to do it without using for loop or something like that ? I know we could use curly and dot bracket indexing but the result is not gonna be a table though.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 2 Jul. 2020
normalized_data = normalize(data, 'range'); %works on a table, normalizes to [0 1]
0 Kommentare
Weitere Antworten (1)
bharath pro
am 2 Jul. 2020
If you can use z-score instead of min max, then you can directly do
data=normalize(data);
If you cant do that, then this works in one line.
data = (data - min(data, [], 1)) ./ max(data - min(data, [], 1), [], 1)
4 Kommentare
Walter Roberson
am 2 Jul. 2020
data = array2table((table2array(data) - min(table2array(data), [], 1)) ./ max(table2array(data) - min(table2array(data), [], 1), [], 1), 'VariableNames', data.Properties.VariableNames);
However, the solution I posted using normalize() works directly on tables without that bother.
Siehe auch
Kategorien
Mehr zu Tables 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!