Borrar filtros
Borrar filtros

Maple piecewise to MATLAB

3 visualizaciones (últimos 30 días)
Bibha
Bibha el 28 de Abr. de 2011
Hi,
I am learning Matlab and stumble on this. I have an expression in Maple and trying to write it in Matlab but my basic knowledge plus some search went down the drain. So, I am here seeking some help.
In Maple: result:= (tb,t,tr,i)->piecewise(t<=tb,0 ,tb<t and t<=tb+tr, i*t, t>tb+tr and t<=500, 100, t>500,t-100);
In simple terms:
tb >= t then 0
tb < t <= tb+tr then i*t
tb+tr < t <= 500 then 100
500 < t then t-100
Now, t varies from 1 to 100 with 100 points. [ linspace(1,100,100]
What would be the equivalent of this expression in Matlab?
Many thanks in advance.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 28 de Abr. de 2011
variant
function y = resultmatlab(t,tb,tr,ii)
p = t(:);
y = zeros(size(p));
t1 = p<=tb; y(t1) = 0;
t2 = p > tb & p <= tb + tr; y(t2) = ii*p(t2);
t3 = p>tb+tr & p<=500; y(t3) = 500;
t4 = ~(t1|t2|t3); y(t4) = p(t4)-500;
y = reshape(y,size(t));
use (Command window)
>> y = resultmatlab(1:100,20,40,100)
  1 comentario
Bibha
Bibha el 28 de Abr. de 2011
fantabulous!
It worked perfectly. Thank you again.

Iniciar sesión para comentar.

Más respuestas (1)

John D'Errico
John D'Errico el 28 de Abr. de 2011
The simple answer is to download my piecewise_eval from the file exchange.
John
  1 comentario
Bibha
Bibha el 28 de Abr. de 2011
Thanks for the link John.

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by