How to normalize negative values in column vector

2 ビュー (過去 30 日間)
Raady
Raady 2016 年 8 月 17 日
コメント済み: Image Analyst 2016 年 8 月 17 日
Matlab 2015a
Hello, I have a column vector of 180 elements, with min(vector) = -1.6010 and max(vector) = 0.3894. when I apply normc(vector), and find min(vector) = -0.1318 and max(vetor) = 0.0321 for which I except the values to be in between 0 and 1. How to resolve this ??
When I am having positive values I do for ranging between 0 to 1
normalized_vector = (vector -min(vector)).max(vector);
but its not working with the negative values.

採用された回答

Image Analyst
Image Analyst 2016 年 8 月 17 日
If you have the Image Processing Toolbox, you can simply use mat2gray:
normalizedVector = mat2gray(vector);
Now normalizedVector will go from 0 to 1. Otherwise, if you are so unfortunate as to not have one of the best toolboxes out there, just scale as you normally would:
normalizedVector = (vector - min(vector)) / (max(vector)-min(vector));
  2 件のコメント
Raady
Raady 2016 年 8 月 17 日
編集済み: Raady 2016 年 8 月 17 日
Speaking about a vector having all positive values alone. I need to apply this feature to one of the classifier. Which way normalizing data is better using matlab inbuilt function 'normc(vector)' or normalizing to range 0 to 1 by using 'mat2gray'? when I apply these functions output of both are completely different. Please suggest.
Please comment if I need to open as another thread !
Image Analyst
Image Analyst 2016 年 8 月 17 日
I don't know. normc() is not a built in function for any of the toolboxes that I have so I don't know what it does.
Both of the statements I give you will give the same results. Both map the min to 0 and the max to 1 and it's linearly scaled in between. I think mat2gray() is the simplest, but you can use whichever one you want.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by