I'm trying to write a funciton that has two outputs, 1 or 0. Based on the angle if its between 0 and 34 degrees its = 0. Then if it's between 34 and 68 = 1. That repeats itself 360 degrees. If anyone can help with the code for the fucntion it would be great! Currently I had:
function Thet = Theta (A)
returnValue = 1;
if mod(A, 68)~= 0
returnValue = 0;
end
Thet = returnValue;
end

 Akzeptierte Antwort

madhan ravi
madhan ravi am 14 Jul. 2020

0 Stimmen

Theta = @(x) 0*(x>=0 & x<34) + 1*(x>=34 & x<=68)

3 Kommentare

I don't see the pattern repeating all the way out to 360:
Theta = @(x) 0*(x>=0 & x<34) + 1*(x>=34 & x<=68)
angle = 0 : 360
out = Theta(angle)
madhan ravi
madhan ravi am 14 Jul. 2020
Bearbeitet: madhan ravi am 14 Jul. 2020
Ok should have included that as well:
x = 394; % for example
Wanted = Theta(x)
function Thet = Theta(x)
x = mod(x, 360);
Thet = 0*(x>=0 & x<34) + 1*(x>=34 & x<=68);
end
Kyle Grimaldi
Kyle Grimaldi am 14 Jul. 2020
Thank you for the response! The output is working for the first 0-68 but anything past that only outputs 0.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Powertrain Blockset finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by