# normalization cell array [1 -1]

5 views (last 30 days)
haitham qutaiba on 19 Dec 2019
Commented: haitham qutaiba on 19 Dec 2019
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.

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)
haitham qutaiba on 19 Dec 2019
thank you so much Nicolas,