Correct codes but no graph shows
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
What do you do when your codes are correct but the graph does not show And do you add other graphs to be on same graph
6 Commenti
Stephen23
il 31 Mag 2017
Modificato: Stephen23
il 31 Mag 2017
"What do you do when your codes are correct"
You change your perspective that your code is "correct". Your code is not "correct", in fact it is buggy. When you sit and think "my code is correct" then you will never get any better at looking for bugs, and understanding how to fix them. You need to learn to actually look at your code, and not rely on what you want/imagine/wish your code were doing.
Risposta accettata
KSSV
il 31 Mag 2017
Modificato: KSSV
il 31 Mag 2017
Change this line:
rho=(wb^2* hbar^2 *besseli(0,delta3))/(wp^2*m*d^2 *k*T*besseli(1,delta3));
to
rho=(wb^2* hbar^2 *besseli(0,delta3))./(wp^2*m*d^2 *k*T*besseli(1,delta3));
You are supposed to do element by element by division. Now it shows plot.
If you have multiple d's, you can follow like this:
clear;
clc;
delta=[0.0259, 0.0518, 0.0776, 0.1035, 0.1293]*10;
delta1=0.01:0.09:0.5;
hbar=6.5821220*10e-16;
k=8.617385*10e-5;
T=300;
d=[100 150]*10e-10;
m = 9.1093897*10e-31;
v = 2.8*10e8;
c = 3.0*10e8;
wp = 10e12;
w = 0.7071;
gamma = (1-((v^2)/(c^2)))^-0.5;
delta2= delta1./(k*T);
figure
hold on
for i = 1:length(d)
wo=(wp^2*m*d(i)^2*delta1.*besseli(1,delta2))/(hbar^2*besseli(0,delta2)).^0.5;
delta3=delta./(k*T);
therta = asind(1-(w^2/wo^2))^0.5;
wb = gamma*wo*cosd(therta);
rho=(wb^2* hbar^2 *besseli(0,delta3))./(wp^2*m*d(i)^2 *k*T*besseli(1,delta3));
plot(delta3,rho,'LineWidth',1.5)
end
xlabel('\Delta^*')
ylabel('E_b/E_s')
%mesh(Vd,wq,real(y))
hold on
grid on
You need to check your code, rho is complex.
5 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su 2-D and 3-D Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!