Piecewise function with large time vector

I am having issues creating a piecewise function. I have coded the piecewise function but MatLab says (t) is set by a nonscalar operator, and gives me "Operands to the || and && operators must be convertible to logical scalar values." when I try to run the code.
clear,clc
t=0:0.001:20; %time in seconds
g = piecewise((0<t)&&(t<2),t/2,(2.001<t)&&(t<4),4./(t.^2),(4.001<t)&&(t<20),0.25);
this is what I have coded. How do I fix this issue?
Thank you.

답변 (1개)

madhan ravi
madhan ravi 2020년 9월 30일

0 개 추천

g = ((0<t)&(t<2)) .* t/2 ...
+((2<=t)&(t<4)) .* (4./(t.^2))...
+((4<=t)&(t<20)) *0.25;

댓글 수: 1

Or if you have the Symbolic Math Toolbox:
syms t
g = piecewise((0<t)&(t<2),t/2,(2<=t)&(t<4),4./(t.^2),(4<=t)&(t<20),0.25);

댓글을 달려면 로그인하십시오.

카테고리

질문:

2020년 9월 30일

댓글:

2020년 9월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by