Trying to do mesh in MatLab but get NaN ?

3 Ansichten (letzte 30 Tage)
Mark
Mark am 1 Aug. 2012
I am trying to execute the following code:
T = 0:.1:12;
e = -6:.1:6;
[Ti,ei] = meshgrid(T,e);
Qi = 1 + exp(-ei/Ti);
However, Qi is giving me "NaN" in every single entry. Is there any way to fix that? Ti & ei can both be computed, but it does not seem to work when you do ei/Ti.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 1 Aug. 2012
Qi = 1 + exp(-ei ./ Ti);

Weitere Antworten (1)

Star Strider
Star Strider am 1 Aug. 2012
The way you have the ‘T’ and ‘e’ vectors defined, ‘T’ and ‘e’ will both be zero at some point. Where (-ei./Ti) = (0/0) you'll get NaN. Everything calculated from a vector or matrix with even one NaN value will generate NaN values for all of them. (This is apparently a standard.) The easiest solution is to redefine:
e = -6 : 0.11 : 6;
or
e = -6 : 0.09 : 6;
or something similar to prevent your ‘e’ vector becoming zero anywhere.
  1 Kommentar
Walter Roberson
Walter Roberson am 1 Aug. 2012
Only positions whose value depend upon a term that is NaN, will become NaN.
The real problem in the code is that "ei' and "Ti" are vectors, and ei/Ti is a matrix right divide operation rather than an element-wise operation ei./Ti

Melden Sie sich an, um zu kommentieren.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by