How do we do operations directly on table elements in matlab?
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
D_coder
il 2 Lug 2020
Commentato: Walter Roberson
il 2 Lug 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 Commenti
Risposta accettata
Walter Roberson
il 2 Lug 2020
normalized_data = normalize(data, 'range'); %works on a table, normalizes to [0 1]
0 Commenti
Più risposte (1)
bharath pro
il 2 Lug 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 Commenti
Walter Roberson
il 2 Lug 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.
Vedere anche
Categorie
Scopri di più su Data Type Conversion 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!