Units help to plot

1 view (last 30 days)
Nina Perf
Nina Perf on 20 Sep 2021
Edited: Nina Perf on 22 Sep 2021
I want to convert values in a table column to a range of -1 to 1 units.
My -1 value is -800
My 0 value is 300
My 1 value is 800
The column values go from 0 to 800.
How can I do this?
Thanks!
  1 Comment
the cyclist
the cyclist on 20 Sep 2021
Edited: the cyclist on 20 Sep 2021
x = [-800 300 800];
y = [-1 0 1];
figure
h = plot(x,y,'.:');
set(h,'MarkerSize',32)
Nina, an infinite number of curves can be drawn through the three points you have specified. None of them are linear (so it is not what I would think of as a simple "conversion".)
Do you have any additional information that would be helpful in what you are trying to do? As I have mentioned in another of your questions, please try to be complete in what you are asking for.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 21 Sep 2021
values = randi([0 800], 1, 10)
values = 1×10
709 747 795 14 63 285 232 537 508 183
b = [-800 300 800];
mask = values < b(2);
scaled(mask) = (values(mask)-b(1))./(b(2)-b(1));
scaled(~mask) = (values(~mask)-b(2))./(b(3)-b(2));
scaled
scaled = 1×10
0.8180 0.8940 0.9900 0.7400 0.7845 0.9864 0.9382 0.4740 0.4160 0.8936

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!