MATLAB Answers

normalization cell array [1 -1]

9 views (last 30 days)
Dear all,
I have cell array called features got one row and four colunms,
features{1} = [-9 2 NaN 4 5 10];
features{2} = [2 -8.3 4 5 10];
features{3} = [8 NaN 10];
features{4} = [8 -4 9 9 2 1 3 10];
i would do normalization between 1 -1 based on this equation below, but this equation works with matrix not cell
features(:,1:end-1)=(features(:,1:end-1)-min(min(features(:,1:end-1))))/...
(max(max(features(:,1:end-1)))-min(min(features(:,1:end-1))));
i need a help how do normalization by ignoring last part of each cell which number 10 and NaN. and normolize it for the rest of numbers in cell.
thanks in advance.

  0 Comments

Sign in to comment.

Accepted Answer

Nicolas B.
Nicolas B. on 19 Dec 2019
Edited: Nicolas B. on 19 Dec 2019
oh I see that you are mixing cell arrays and arrays. With your feature structure, to access the -9 of your first line, you need to do:
features{1}(1)
So, with your structure, if you want to continue that way, you should use this code:
% the normalisation function for 1 array
fnom = @(v) [(v(1:end-1) - min(v(1:end-1)))/(max(v(1:end-1))-min(v(1:end-1))), v(end)];
% apply your function on features cell array
features = cellfun(fnom, features, 'UniformOutput', false)

  1 Comment

haitham qutaiba
haitham qutaiba on 19 Dec 2019
thank you so much Nicolas,

Sign in to comment.

More Answers (0)

Sign in to answer this question.