Добрый день, Мне было интересно, можно ли в любом случае выполнить работу, выполненную мной в MATLAB, вместо повторения тех же уравнений, чтобы изменить одну и ту же переменную?Можно ли сделать всю работу в одном цикле?
r=1:0.1:20;
A=(r+1./r)./4;
%%%%%%%%%%%%%%%%%%%%%%%%%
x1=0;
R1=((r+1./r)-2)./((r+1./r)+x1);
B1=(1-(x1/2)^2)^-0.5;
NUM1= 2 + (0.5.*x1.*(r+1./r));
DUM1=(r- 1./r).*(1-(x1/2)^2)^0.5;
C1=EA(NUM1./DUM1);
G1=A.*B1.*C1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x2=-0.1;
R2=((r+1./r)-2)./((r+1./r)+x2);
B2=(1-(x2/2)^2)^-0.5;
NUM2= 2 + (0.5.*x2.*(r+1./r));
DUM2=(r- 1./r).*(1-(x2/2)^2)^0.5;
C2=EA(NUM2./DUM2);
G2=A.*B2.*C2;
figure
plot(r,G1,'b',r,G2,'r',r,G3,'g',r,G4,'k',r,G5,'c',r,G6,'y','Linewidth',3)
xlabel('$r$','Interpreter','latex','FontSize',18)
ylabel('$G=\gamma P_P L$','Interpreter','latex','FontSize',18)
title('Gain vs r for different values of D/sqrt(M)')
legend('0','-0.1','-1','-1.5','0.5','1.5','1')
%% The function G for different values of x(or equivalent R) are plotted below sigma 0 %is a notation i am using for different R
figure
plot(R1,G1,'b--',R2,G2,'r',R3,G3,'g',R4,G4,'k',R5,G5,'b--',R6,G6,'r','Linewidth',3)
xlabel('$\sigma_0$','Interpreter','latex','FontSize',18)
ylabel('$G=\gamma P_P L$','Interpreter','latex','FontSize',18)
title('Gain vs r for different values of D/sqrt(M)')
legend('0','-0.5','0.1','1')
Так что мой вопрос вместо того, чтобы повторять то же уравнение R и G просто изменить одну переменную, мы можем сделать то же работу в 10 раз и сделать код короче, с помощью петли и все еще получить те же участки? Спасибо
Если я правильно вас понимаю, то вы хотите, чтобы повторялось «plot (R, G)» в for-loop. я предполагаю, что вы обнаружили, что новый сюжет будет переопределять старый, но есть синтаксис 'hold on' для защиты этих старых рисунков. – Gnimuc
И не забудьте «удержать» в конце! – buzjwa
Что такое переменная 'EA'? – BillBokeey