Array indices must be positive integers or logical values Error

I'm trying to execute this for loop and I keep coming up with same error. I don't understand why this is happening so if you could help at all it would be greatly appreciated.
for t= linspace(0,99)
C_1=x0;
C_2=x0_dot+(Wn*x0);
x(t)= (C_1 + (C_2*t))*exp(-Wn*t);
end

 Accepted Answer

t= linspace(0,99);
for i = 1:numel(t)
C_1=x0;
C_2=x0_dot+(Wn*x0);
x(i)= (C_1 + (C_2*t(i)))*exp(-Wn*t(i));
end
plot(t,x)
if x0, x0_dot and Wn are scalars meaning a single number then you can do something like:
t = linspace(0,99);
C_1=x0;
C_2=x0_dot+(Wn*x0);
x = (C_1 + (C_2.*t)).*exp(-Wn.*t);
plot(t,x)

7 Comments

Note : some of your parameters are not defined , I suspect you don't need loop for your case
Thank you but I get a new error on both options about the multiplication.
Error using * Incorrect dimensions for matrix multiplication. Check that the number of columns in the first matrix matches the number of rows in the second matrix. To perform elementwise multiplication, use '.*'.
Error in Lab2 (line 23) x = (C_1 + (C_2.*t))*exp(-Wn.*t);
Thanks if you don't mind me asking why doesn't the first option work when x0,x0_dot and Wn are scalars?
actually the first option works but its useless to use a loop if you can do it directly why go around if you can take a shortcut?
thanks I was following a flowchart and confused the for for the if loop I get it now thank you

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2018b

Community Treasure Hunt

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

Start Hunting!