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

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 comentarios

Look at what your data contains:
Log_iZn =
-Inf -Inf
EZn =
-2 0
how do i resolve the problem, what should i do with the code.
Matt J
Matt J el 10 de Oct. de 2021
Editada: Matt J el 10 de Oct. de 2021
Matlab is calculating what you asked it to. We cannot know what you really intended to calculate.

Iniciar sesión para comentar.

 Respuesta aceptada

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.

Más respuestas (0)

Categorías

Más información sobre MATLAB en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 10 de Oct. de 2021

Respondida:

el 10 de Oct. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by