New to matlab please help

Im brand new to matlab and can't figure this thing out Here is what I'm trying to do I simply want to create a basic plot of a capacitor charge current
Here is the code i wrote
close all
clear all
R = 50,000
C = 2200 * 10^-12
imax = 1/R
tau = R*C
t = [0:.0001:1]
current = imax*exp(-t ./ tau)
axis ([.00000001 .01 0 .01])
plot(t, current)
I can't see the plot no matter how i adjust the axis.The X axis always seems to stay 0 to 1 I don't understand why. Please rescue me. I spend more time fighting with this then i do actually doing my homework

 Accepted Answer

Chad Greene
Chad Greene on 1 Jul 2014
Edited: Chad Greene on 1 Jul 2014
A couple of things:
Make a habit of ending lines with a semicolon (;) to suppress the output. It doesn't make a big difference now, but later down the road with big data, printing the output will slow down processing.
Your R value is being read as 50 instead of 50000. If there are too many zeros for pleasant reading, you could type R = 50e+3.
Try semilogy instead of plot to show this data.
R = 50000;
C = 2200e-12;
imax = 1/R;
tau = R*C;
t = [0:.0001:1];
current = imax*exp(-t ./ tau);
axis ([.00000001 .01 0 .01]);
semilogy(t, current)

8 Comments

Thank you very much for taking the time to write. the 50,000 helped. It looks a little better. The semiology I'm assuming would come in handy for bode plots. I still would really like to get the regular plot working. The plot actually shows up not but still can't get the axis right to make it look normal. I added many values of t to help with smoothing the curve. Any recommendations on how to get a good look at this?
Actually, I see that you were attempting to set the axis limits before plotting the data. Set the axes after plotting the data. Like this:
plot(t, current)
axis([1e-8 .01 0 .01]);
You have plenty of values of t. It will still probably look a little jagged in the figure window, because Matlab figures are a bit ugly by default. If you want to save smooth, attractive figures, use export_fig .
Thanks. The axis after the plot seemed to help a little but i still have no curve Its just a flat line. I don't get it Here is the code now
%d
close all;
clear all;
R = 50000;
C = 2200 * 10^-12;
imax = 1/R;
tau = R*C;
t = [0:.001:.5];
current = imax*exp(-t./tau);
plot(t, current)
axis ([0 .001 0 .5]);
It's plotting the curve in blue, but the maximum value in your current is 2x10^-5. That's very small compared to the limit of your y axis that you have set as 0.5. The result is a blue curve that looks like a flat line at the bottom of the graph.
You can specify the x limits without specifying the y limits, and Matlab will usually do an okay job of guessing the appropriate y limits. To do this, delete the axis line and replace it with
xlim([0 .001]);
You sir just got yourself added to my xmass card list! Thank you!!
Glad to hear it.
On a side note, this is clunky: C = 2200 * 10^-12;.
Consider adopting this syntax instead: C = 2200e-12;
will do. This is like my second day trying matlab so i appreciate the suggestions. Im still not 100% sure what i can and can't do. I have a C, C++ background and a few HDL,s and latex but don't know any matlab. Thanks again!

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Asked:

on 1 Jul 2014

Commented:

on 1 Jul 2014

Community Treasure Hunt

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

Start Hunting!