# how we can define piecewise function in matlab?

47 vues (au cours des 30 derniers jours)
ebi le 12 Oct 2013
in maple we can use comamnd:(
f:= piecewise(0 <= t and t <= T1, f1, T1 < t and t < T2, 0, T2 <=t and t <= T3, f1, T3 < t and t < T4, 0)
but in matlab i can not define this function.
please give me som information ...
thanks
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

Sally Al Khamees le 23 Déc 2016
Modifié(e) : Sally Al Khamees le 21 Fév 2017
If you have R2016b and the Symbolic Math Toolbox installed, you can just use the piecewise function:
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Plus de réponses (3)

Walter Roberson le 12 Oct 2013
You cannot define that as a function in MATLAB. MATLAB functions need to have a defined value for the case where none of the conditions hold. If you were absolutely sure that one of the conditions will hold you would rewrite the Maple function without the final condition, as
piecewise(0 <= t and t <= T1, f1, T1 < t and t < T2, 0, T2 <=t and t <= T3, f1, 0)
This would be
function y = f(t, T1, T2, T3, f1)
y = zeros(size(t));
idx1 = 0 <= t & t <= T1;
y(idx1) = f1;
idx2 = T1 < t & t < T2;
y(idx2) = 0;
idx3 = T2 <= t & t <= T3;
y(idx3) = f1;
y(~(idx1 | idx2 | idx3)) = 0;
end
##### 4 commentairesAfficher 2 commentaires plus anciensMasquer 2 commentaires plus anciens
ebi le 12 Oct 2013
thanks a lot i will try it ...
Walter Roberson le 21 Fév 2017
Note: my later experiments showed that using sym('t->...') cannot possibly create a symbolic function.

Connectez-vous pour commenter.

sixwwwwww le 12 Oct 2013
Dear ebi, You need something like this if I understood correctly:
syms f f1
t = input('Enter value of t: ');
% Assuming values of T1, T2 and T3 as follows
T1 = 10;
T2 = 20;
T3 = 30;
if ((t >= 0 && t <= T1) || (t >= T2 && t <= T3))
f = f1; % here you can define f1 as you wish
else
f = 0;
end
Is it ok?
##### 3 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
sixwwwwww le 12 Oct 2013
Do you input 't' as a time vector? and get f(t) for which you can calculate fft? Is it right?
ebi le 13 Oct 2013
i plot f(t) from [0..0.336]s and for that time period i have to calculate the integral of (f(t).exp(-i.w.t)dt)=F(w) and then plot F - w .

Connectez-vous pour commenter.

shashi raj le 21 Oct 2019
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Assumptions 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