フィルターのクリア

how to scale the array type double of range [-1,1] to [0,1] and [0,360] to[0,1]

6 ビュー (過去 30 日間)
preet
preet 2013 年 8 月 16 日
コメント済み: Walter Roberson 2021 年 2 月 28 日
i want to scale my values which are in range of [0,360], [-1,1]to [0,1]

回答 (5 件)

Jan
Jan 2017 年 8 月 28 日
編集済み: Jan 2017 年 8 月 28 日
The general method to scale any input array (vector, matrix, multi-dim array) to the range [0, 1] is:
maxV = max(V(:));
minV = min(V(:));
Vs = (V - minV) / (maxV - minV);

Jan
Jan 2013 年 8 月 16 日
The following scales array x from any range to [0, 1]
scaled = x - min(x);
scaled = scaled / max(scaled);

Alireza Ahani
Alireza Ahani 2021 年 2 月 28 日
check out this function. you can specify also the boundaries.
  1 件のコメント
Walter Roberson
Walter Roberson 2021 年 2 月 28 日
Correct.
This function did not exist back when the question was asked, but is a useful function to know now.
In older days, the deceptively named mat2gray() function was the one to call to do the rescaling.

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


Azzi Abdelmalek
Azzi Abdelmalek 2013 年 8 月 16 日
a=-1:0.1:1
b=a-min(a)
e=max(a)-min(a)
out=b/e
% you can use the same code for all cases

Abdullah Caliskan
Abdullah Caliskan 2017 年 8 月 14 日
編集済み: Walter Roberson 2021 年 2 月 28 日
if input is matrix, you can use this. upper, bottom
xmax =max(input);
xmin =min(input);
A=bsxfun(@minus,input,xmin);
B=bsxfun(@rdivide,A,(xmax-xmin));
cikis=B*(upper-bottom)+bottom;
  1 件のコメント
Jan
Jan 2017 年 8 月 28 日
This works columnwise. I assume the min and max values should concern the complete matrix.

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

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by