0
$\begingroup$

I have a matrix like:

B=[ 1.5035; 1.5728; 1.6485;  1.5369;  1.5467;  1.572; 1.5374;  1.787;  1.5825; 1.6905];

Using normalize function like normalize(B,'range') has this result:

ans =  0
  0.24444
  0.51146
  0.11781
  0.15238
  0.24162
  0.11958
        1
  0.27866
  0.65961

But when I use it for a single value like:

normalize(B(2,:),'range') 

the result is 0 , but the result for row number 2 in ans is 0.24444. Why its different and how can I fix it?

$\endgroup$
1
$\begingroup$

The normalize function works by calculating z-score for the given data. Now z-score is given by: $$z_{i} = \frac{x_{i} - mean(X)}{s.d.(X)}$$ where $X$ is your original vector/matrix.

Now, when you give a vector as input it first calculates the mean and standard deviation for the row/column. Then the output you ask for is calculated the above formula. So, if you only ask for a scalar it only shows one value. You can see in your example the normalized value(or z-score) is same for that particular position i.e. $0.24444$.

But when you give only a single value as input the z-score is 0 by definition. For more on it's working and use take a look at the docs.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.