How to interpolate based on given column

3 vues (au cours des 30 derniers jours)
Mekala balaji
Mekala balaji le 7 Nov 2018
Modifié(e) : madhan ravi le 7 Nov 2018
Hi,
I have below array(double), and want to assign 50 for maximum value and 0 for minimum value, and for the rest of the values between maxima and minima interpolation.
0.2
0.8
1.0
1.3
0.8
2.3
4.9
10.0
0.2
5
2.3
8.7
10
In this case,
0.2 -->50
10.0 -->0
for rest of the values, to interpolate between 50& 0.

Réponse acceptée

Stephen23
Stephen23 le 7 Nov 2018
Modifié(e) : Stephen23 le 7 Nov 2018
No need to use interpolation, just some simple, efficient arithmetic:
>> V = [0.2;0.8;1.0;1.3;0.8;2.3;4.9;10.0;0.2;5;2.3;8.7;10]
V =
0.20000
0.80000
1.00000
1.30000
0.80000
2.30000
4.90000
10.00000
0.20000
5.00000
2.30000
8.70000
10.00000
>> Vmin = min(V);
>> Vmax = max(V);
>> 50*(Vmax-V)/(Vmax-Vmin)
ans =
50.00000
46.93878
45.91837
44.38776
46.93878
39.28571
26.02041
0.00000
50.00000
25.51020
39.28571
6.63265
0.00000

Plus de réponses (1)

madhan ravi
madhan ravi le 7 Nov 2018
Modifié(e) : madhan ravi le 7 Nov 2018
a=[0.2
0.8
1.0
1.3
0.8
2.3
4.9
10.0
0.2
5
2.3
8.7
10]
[~,x1]= max(a)
[~,x2]=min(a)
a(x1)=50
a(x2)=0
Interpolated_values=interp1(a,linspace(a(1),a(end))); %interpolated between 0 and 50

Catégories

En savoir plus sur Get Started with MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by