Info

This question is closed. Reopen it to edit or answer.

Cases function: why do I get this message "array indices must be positive integers or logical values"

1 view (last 30 days)
Hey,
I want to wrtie the following function in matlab:
I get this message
"array indices must be positive integers or logical values"
It says there is a problem with the line:
else x1(t) = 0;
My code, if someone can help me to fix this :)
t = linspace (-5, 5, 1001);
if (abs(t) <= 1)
x1(t) = 1 - abs(t);
else x1(t) = 0;
end

Answers (1)

KSSV
KSSV on 1 Nov 2020
You should use logical indexing. Try something like this:
t = linspace (-5, 5, 1001);
x1 = zeros(size(t)) ;
x1(abs(t)<=1) = 1 - t(abs(t)<=1);
plot(t,x1)

Community Treasure Hunt

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

Start Hunting!