MATLAB Answers

i have a problem with my plot, i am not getting any values and the system gives me an empty plot.

1 view (last 30 days)
Ammar Anayi
Ammar Anayi on 10 Oct 2021
Edited: VBBV on 10 Oct 2021
a = 0;5;
i0H2 = 10^(-7);
i0Zn = 10^(-5);
C = 7;
R = 8;314;
T = 298;15;
F = 96485;
E0H2 = -0;83;
E0Zn = -1;27;
n = [-1,1];
EH2 = n + E0H2;
EZn = n + E0Zn;
iH2 = @(n)(i0H2 *( exp((a*F*n)/(R*T)) - exp((-a*F*n)/(R*T)))) ;
iZn = @(n) (i0Zn * (exp((a*F*n)/(R*T)) - exp((-a*F*n)/(R*T))));
Log_iH2 = log10(iH2(n));
Log_iZn = log10(iZn(n));
plot(Log_iH2, EH2)
hold on
plot(Log_iZn, EZn)
hold on
  3 Comments

Sign in to comment.

Accepted Answer

John D'Errico
John D'Errico on 10 Oct 2021
Look at what you did.
a = 0;5;
First, maybe you think this creates a vector in a? Instead, it just sets a to 0. Then it dumps 5 into the bit bucket.
i0H2 = 10^(-7);
i0Zn = 10^(-5);
C = 7;
R = 8;314;
T = 298;15;
F = 96485;
E0H2 = -0;83;
E0Zn = -1;27;
Again, I wonder if you understand that just dumps the second number after the semi-colon into the bit bucket?
n = [-1,1];
EH2 = n + E0H2;
EZn = n + E0Zn;
iH2 = @(n)(i0H2 *( exp((a*F*n)/(R*T)) - exp((-a*F*n)/(R*T)))) ;
iZn = @(n) (i0Zn * (exp((a*F*n)/(R*T)) - exp((-a*F*n)/(R*T))));
Log_iH2 = log10(iH2(n))
Log_iH2 = 1×2
-Inf -Inf
Log_iZn = log10(iZn(n))
Log_iZn = 1×2
-Inf -Inf
Finally, you try to plot those numbers. Since they are infinities, what do you expect to be plotted?
What you really wanted to do here is a complete guess. I won't even try to make one.

More Answers (1)

VBBV
VBBV on 10 Oct 2021
Edited: VBBV on 10 Oct 2021
a = 0.5; % perhaps this
i0H2 = 10^(-7);
i0Zn = 10^(-5);
C = 7;
R = 8.314; % here ... assume some gas constant
T = 298.15; % here as well
F = 96485;
E0H2 = -0.83; % also here
E0Zn = -1.27;
n = [-1 1]; % experiment with this also
EH2 = n + E0H2;
EZn = n + E0Zn;
iH2 = @(n) (i0H2 *( exp((a*F*n)/(R*T)) - exp((-a*F*n)/(R*T)))) ;
iZn = @(n) (i0Zn * (exp((a*F*n)/(R*T)) - exp((-a*F*n)/(R*T))));
Log_iH2 = log10(iH2(n));
Log_iZn = log10(iZn(n));
plot(real(Log_iH2), EH2, real(Log_iZn), EZn,'linewidth',2);grid
May be you have some constants defined incorrectly in your code,

Community Treasure Hunt

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

Start Hunting!

Translated by