Plot range with semilogx
1 view (last 30 days)
Show older comments
Jareth Rivas-Diaz
on 9 Nov 2019
Commented: Jareth Rivas-Diaz
on 9 Nov 2019
I am trying to use an array in my function, and then plot that same array as the x-axis. Even if I change "EfEm" to a single number (i.e. 400), it will not plot line. I believe my problem is wil "eta", but I am unsure on how to correct it so it will compute the range of EfEm. The correct output should be a line that starts flat, curves up from 10 to 200, and begins to plateau at around 400 until 1000.
% Constants and equations
EfEm = 0:1000;
xi = 2;
eta = (EfEm - 1)/(EfEm + xi);
y70 = (1 + xi * eta * .7)/(1 - eta * .7);
% Plot
figure
semilogx(EfEm,y70, 'r');
ylim ([0,20]);
yticks([0,4,8,12,16,20]);
legend('V_f = 70%');
xlabel("E_f/E_m");
ylabel("E_2/E_m")
grid on
0 Comments
Accepted Answer
the cyclist
on 9 Nov 2019
Edited: the cyclist
on 9 Nov 2019
You needed element-wise instead of matrix division in these two lines:
eta = (EfEm - 1)./(EfEm + xi);
y70 = (1 + xi * eta * .7)./(1 - eta * .7);
Note where I used ./ instead of just / in the code. See the documentation on array vs. matrix operations.
More Answers (0)
See Also
Categories
Find more on Log Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!