필터 지우기
필터 지우기

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

조회 수: 8 (최근 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 CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by