who to write this function in another way?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I did this function but I didn't want like this long. I try to put in MATLAB Function in simulink
I want like this but I did not where my mistake?
outputvalue = map(sensorValue, low input , high input , low output , high input);
y = map(u, -1 , 1 , 0 , 0.5);
that what I did
function y = fcn(u)
if u <(-0.9)
y=0.25;
elseif u < (-0.8)
y=0.20;
elseif u < (-0.6)
y=0.15;
elseif u < (-0.4)
y=0.10;
elseif u < (-0.2)
y=0.05;
elseif u < 0.2
y=0;
elseif u < 0.4
y=0.30;
elseif u < 0.6
y=0.35;
elseif u < 0.8
y=0.40;
elseif u < 0.9
y=0.45;
elseif u < 1.5
y=0.50;
else
y=1;
end
2 commentaires
Réponses (3)
Chunru
le 22 Sep 2021
fcn(-5)
fcn(.34)
fcn(4)
function y = fcn(u)
x0 = [-inf -0.9 -0.8 -0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 0.9 1.5];
y0 = [0.25 0.20 0.15 0.10 0.05 0 0.30 0.35 0.40 0.45 0.50 1 ];
idx = find(u > x0, 1, 'last' );
y = y0(idx);
end
3 commentaires
Mohammad Alhaddad
le 22 Sep 2021
Modifié(e) : Mohammad Alhaddad
le 22 Sep 2021
1 commentaire
Chunru
le 22 Sep 2021
This looks like a new question and you should have started a new question. The old question has been answered already.
Anyway, the solution to the problem is rather straightforwad:
x = 0:.1:1023;
y = map(x, 0, 1023, 0, 255);
plot(x(1:200), y(1:200));
function y = map(x, in0, in1, out0, out1)
y = floor((x-in0)/(in1-in0) * (out1-out0)) + out0;
end
Voir également
Catégories
En savoir plus sur Arduino Hardware 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!