フィルターのクリア

Maple piecewise to MATLAB

1 回表示 (過去 30 日間)
Bibha
Bibha 2011 年 4 月 28 日
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.

採用された回答

Andrei Bobrov
Andrei Bobrov 2011 年 4 月 28 日
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 件のコメント
Bibha
Bibha 2011 年 4 月 28 日
fantabulous!
It worked perfectly. Thank you again.

サインインしてコメントする。

その他の回答 (1 件)

John D'Errico
John D'Errico 2011 年 4 月 28 日
The simple answer is to download my piecewise_eval from the file exchange.
John
  1 件のコメント
Bibha
Bibha 2011 年 4 月 28 日
Thanks for the link John.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by