필터 지우기
필터 지우기

How do we do operations directly on table elements in matlab?

조회 수: 13 (최근 30일)
D_coder
D_coder 2020년 7월 2일
댓글: Walter Roberson 2020년 7월 2일
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.

채택된 답변

Walter Roberson
Walter Roberson 2020년 7월 2일
normalized_data = normalize(data, 'range'); %works on a table, normalizes to [0 1]

추가 답변 (1개)

bharath pro
bharath pro 2020년 7월 2일
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
D_coder
D_coder 2020년 7월 2일
again I wanna preserve the table columns names I doubt this would do it
Walter Roberson
Walter Roberson 2020년 7월 2일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by