How to plot a 3D graph

3 次查看(过去 30 天)
sophp
sophp 2018-1-31
I am attempting to plot a mesh 3D graph that displays how Y_B varies with t and T. I then want to solve this graph to find the coordinates that gives the maximum value of Y_B. This is the code to give a graph that displays how T varies with Y_B for different variables for t
if true
% code
T=600:10:850;
t = 1;
k1 = 10^7.*exp(-12700./T);
k2 = 5*10^4.*exp(-10800./T);
k3 = 7*10^7.*exp(-15000./T);
t=1:2:20;
hold on;
for i=1:numel(t)
Y_B = (k1.*t(i).*(k1+k3))./(((k2.*t(i))+1).*(k1+k3).*(1+(t(i).*(k1+k3))));
plot(T,Y_B);
end
How do I transform this into a 3D plot for t = 0.2:20 and T = 600:850
  2 个评论
Star Strider
Star Strider 2018-1-31
What is ‘T’?
What is its range?
How does it enter into the calculation of ‘Y_B’?
sophp
sophp 2018-1-31
T changes the value of k1, k2 and k3
k1 = 10^7.*exp(-12700./T);
k2 = 5*10^4.*exp(-10800./T);
k3 = 7*10^7.*exp(-15000./T);
Its range is 600 to 850
Y_B is given by
Y_B = (k1.*t.*(k1+k3))./(((k2.*t+1).*(k1+k3).*(1+(t.*(k1+k3))));
The range of t is 0.2 to 20

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2018-1-31
Use meshgrid to create matrices for ‘t’ and ‘T’, and remove the subscripts from the ‘Y_B’ calculation:
T=600:10:850;
t=1:2:20;
[tm,Tm] = meshgrid(t, T);
k1 = 10^7.*exp(-12700./Tm);
k2 = 5*10^4.*exp(-10800./Tm);
k3 = 7*10^7.*exp(-15000./Tm);
Y_B = (k1.*tm.*(k1+k3))./(((k2.*tm)+1).*(k1+k3).*(1+(tm.*(k1+k3))));
figure(1)
surf(t,T,Y_B)
grid on
xlabel('t')
ylabel('T')
zlabel('Y\_B')
  4 个评论
sophp
sophp 2018-1-31
I see. This works perfectly, how do I display these coordinates??
Star Strider
Star Strider 2018-1-31
I would do this:
DisplayCoordinates = [tm(Y_BmaxRow,Y_BmaxCol), Tm(Y_BmaxRow,Y_BmaxCol), Y_B(Y_BmaxRow,Y_BmaxCol)]
DisplayCoordinates =
19.0000 710.0000 0.5114

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by