What does this mean? (Attempted to access Q(0); index must be a positive integer or logical.)
Show older comments
I am trying to use the formula Q(t ) = CV(1 − e−t/RC ) to monitor the charge on the capacitor every .2 seconds given V = 9,R = 4, C = 1, and Q at t(0) = 0. We are supposed to display the time and charge every .1 seconds until Q exceeds 8.
This is my code so far:
Q(0)=0;
V = 9; %Voltage
R = 4; %Resistor Value
C = 1; %Capacitor Value
p = 0;
t = .1; %Time
for Q = 0:8
Q(t) = C * V * (1-exp(-(p+t)/(R * C))); %Charge Function
plot (Q(t),'c+')
end
When I attempt to evaluate the code i keep getting this:
Attempted to access Q(0); index must be a positive integer or logical.
Thank you
Answers (2)
Azzi Abdelmalek
on 10 Mar 2013
Edited: Azzi Abdelmalek
on 10 Mar 2013
In Matlab you can not use
A(0) or A(-1) or A(1.5)
index must be a positive integer or logical:
Positive integer are: 1,2,3,...
Logical are: logical(0) and logical(1)
2 Comments
Turk
on 10 Mar 2013
Azzi Abdelmalek
on 10 Mar 2013
Yes, you can not use Q(0.1) because 0.1 is not positive integer
Daniel Shub
on 10 Mar 2013
0 votes
Your for loop doesn't make any sense. It is a bad idea to iterate on a variable that you then change within a for loop (in this case Q). Further, t is a non-integer value so cannot be used to index Q. Finally plot (Q(t),'c+') is probably not doing what you expect.
MATLAB comes with some really great documentation. I suggest reading it.
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!