Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 218194

Submitted on 17 Mar 2013 by @bmtran

Correct

31Size
Leading solution size is 17.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
%% simple test
x = [-2 -10 5 10];
a = 0;  b = 1;
assert(isequal(rescale_vector(x,a,b),[0.4 0 0.75 1]))
ans =
    0.4000         0    0.7500    1.0000
2
Pass
 
%% inverse test
x = [-2 -10 5 10];
a = 1;  b = 0;
assert(isequal(rescale_vector(x,a,b),[0.6 1 0.25 0]))
ans =
    0.6000    1.0000    0.2500         0
3
Pass
 
%% extrem positive
x = rand(10,1);
a = realmin;  b = realmax/1e2;
y = rescale_vector(x,a,b)
assert(min(y)==realmin & max(y)==b)
ans =
  1.0e+306 *
    0.7101
    1.7977
    0.0747
    1.5344
    1.0944
    0.5338
    0.1468
    0.6423
    0.7546
    0.0000
y =
  1.0e+306 *
    0.7101
    1.7977
    0.0747
    1.5344
    1.0944
    0.5338
    0.1468
    0.6423
    0.7546
    0.0000
4
Pass
 
%% extrem
x = diag(pascal(10));
a = -realmax/2; b = realmax/2;
y = rescale_vector(x,a,b);
assert(min(y)==a && max(y)==b)
ans =
  1.0e+307 *
   -8.9885
   -8.9881
   -8.9866
   -8.9814
   -8.9630
   -8.8957
   -8.6472
   -7.7198
   -4.2301
    8.9885