I'm adding legend in the graph for the 4 plot in the same graph, please help me in this.

2 次查看(过去 30 天)
ti = 0;
tf = 1E-3;
tspan=[ti tf];
y0 = [(10E-6).*rand(10,1);((-3.14).*rand(4,1) + (3.14).*rand(4,1))]; % intial conditions
o = sort(10e2*rand(1,4),'ascend'); %detuning frequency
t =1E-3;
[T,Y]= ode45(@(t,y) rate_eq(t,y,o),tspan,y0);
figure(1)
plot(T./t,(Y(:,11)),'linewidth',0.8);
hold on
for m = 12:14
plot(T./tf,(Y(:,m)),'linewidth',0.8);
end
hold off
grid on
xlabel("time")
ylabel("phase difference")
legend(Y(:,11),Y(:,12),Y(:,13),Y(:,14),"Location","northeast");
Error using legend
Invalid argument. Type 'help legend' for more information.
set(gca,'fontname','times New Roman','fontsize',18,'linewidth',1.8);
function dy = rate_eq(t,y,o)
dy = zeros(14,1);
P = 1.25;
a = 0.1;
tc = 230E-6;
tp = 5.4E-9;
k = 6E-3;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dy(1) = (P - y(1).*((abs(y(6)))^2 +1))./tc;
dy(2) = (P - y(2).*((abs(y(7)))^2 +1))./tc;
dy(3) = (P - y(3).*((abs(y(8)))^2 +1))./tc;
dy(4) = (P - y(4).*((abs(y(9)))^2 +1))./tc;
dy(5) = (P - y(5).*((abs(y(10)))^2 +1))./tc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dy(6)= (y(1)-a).*((y(6))./tp) + (k./tp).*(y(7)).*cos(y(11));
dy(7)= (y(2)-a).*((y(7))./tp) + (k./tp).*(y(8)).*cos(y(12)) + (k./tp).*(y(6))*cos(y(11));
dy(8)= (y(3)-a).*((y(8))./tp) + (k./tp).*(y(9)).*cos(y(13)) + (k./tp).*(y(7))*cos(y(12));
dy(9)= (y(4)-a).*((y(9))./tp) + (k./tp).*(y(10)).*cos(y(14)) + (k./tp).*(y(8))*cos(y(13));
dy(10)= (y(5)-a).*((y(10))./tp) + (k./tp).*(y(9)).*cos(y(14));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dy(11) = o(1,1) - (k./tp).*(y(6)/y(7)).*(sin(y(11))) - (k./tp).*(y(7)/y(6)).*(sin(y(11))) + (k./tp).*(y(8)./y(7))*sin(y(12));
dy(12) = o(1,2) - (k./tp).*(y(7)/y(8)).*(sin(y(12))) - (k./tp).*(y(8)/y(7)).*(sin(y(12))) + (k./tp).*(y(9)./y(8))*sin(y(13)) + (k./tp).*(y(6)/y(7)).*sin(y(11));
dy(13) = o(1,3) - (k./tp).*(y(8)/y(9)).*(sin(y(13))) - (k./tp).*(y(9)/y(8)).*(sin(y(13))) + (k./tp).*(y(10)./y(9))*sin(y(14)) + (k./tp).*(y(7)/y(8)).*sin(y(12));
dy(14) = o(1,4) - (k./tp).*(y(9)/y(10)).*(sin(y(14))) - (k./tp).*(y(10)/y(9)).*(sin(y(14))) + (k./tp).*(y(8)/y(9)).*sin(y(13));
end

回答(1 个)

dpb
dpb 2022-10-12
编辑:dpb 2022-10-12
Use something like
legend('Y(11)','Y(12)','Y(13)','Y(14)',"Location","northeast");
instead.
The legend entries are strings describing the data, not references to the data itself.

类别

Help CenterFile Exchange 中查找有关 Legend 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by