Problema matlab

raizen1
Salve,

avrei bisogno di aiuto per un problema di ingegneria svolto su matlab...in sostanza io ho impostato il mio problema e sn arrivato alla soluzione...soltanto che adesso ho inserito un ciclo for per tenere conto della variazione di h( che per me è l altezza del muro su un arco circolare)...il problema è esclusiavemente grafico perchè avrei bisogno che matlab mi disegnasse i grafici per ogni valore del ciclo for...cioè per ogni passo di h...che comando devo inserire?dove sbaglio?quando clicco sul play ottengo il grafico soltanto relativo al passo finale cioè per h=8...invece vorrei che sul grafico mi sovrapponesse i grafici di tutti i passi....spero di essere stato chiaro..qui sotto c è il programma...sono un novizio...cercate di essere più chiari possibili nella risposta...o magari fatemi vedere praticamente cme modificare il programma...grazie e rispondete in tanti e subito ;)...io controllo sempre...




clear all
clc

%intervallo variazione angolo teta
x=[0:0.01:pi/2];

%dati
b=1500; %densità del muro
r=2.5; %semiluce dell'arco
s=0.3; %spessore dell'arco
for h=4:2:8; %altezza del muro

%calcoli
u=((h/2)*(sin(x).^2)*(r+s))-((1/3)*(1-cos(x))*((r+s)^2))-((1/3)*((r+s)^2)*(sin(x).^2).*cos(x));
v=(h*sin(x))-((1/2)*(r+s)*x)-((1/2)*(r+s)*sin(x).*cos(x));
z=u./v; %baricentro del muro

a=(b*h*((r+s)^2)*(sin(x).^2))-(b*(r+s)*h*sin(x).*z)-((b/2)*((r+s)^3)*(sin(x).^2).*cos(x))+((b/2)*((r+s)^2)*sin(x).*cos(x).*z)-((b/2)*((r+s)^3)*x.*sin(x))+((b/2)*((r+s)^2)*x.*z);
c=(b*r*x*s*(r+s).*sin(x))+((b/2)*x*(s^2)*(r+s).*sin(x))-(2*b*s*r*(1/(2*r+s))*(1-cos(x))*(1/3)*((3*(r^2))+(3*r*s)+(s^2)))-(b*((s^2)/(2*r+s))*(1-cos(x))*(1/3)*((3*(r^2))+(3*r*s)+(s^2)));
d=(r+s)*(1-cos(x));
a1=(b*(r+s)*r*h*(sin(x).^2))-(b*(r+s)*h*sin(x).*z)-(b*((r+s)^2)*(r/2)*(sin(x).^2).*cos(x))+((b/2)*((r+s)^2)*cos(x).*sin(x).*z)-((b/2)*((r+s)^2)*r*x.*sin(x))+((b/2)*((r+s)^2)*x.*z);
c1=(b*x*(r^2)*s.*sin(x))+((b/2)*(s^2)*r*x.*sin(x))-(2*b*r*s*(1/(2*r+s))*(1-cos(x))*(1/3)*((3*(r^2))+(3*r*s)+(s^2)))-(b*(s^2)*(1/(2*r+s))*(1/3)*(1-cos(x))*((3*(r^2))+(3*r*s)+(s^2)));
d1=(r*(1-cos(x))+s);

%risultato
y=(a+c)./d; %y è la spinta in chiave
y1=(a1+c1)./d1; %y è la spinta in chiave

end


%grafico
plot(x,y,x,y1),xlabel('teta in rad'),ylabel('spinta in chiave')
title('spinta in chiave in funzione di teta')[/img]

Risposte
ema901
Ciao , io non sono un esperto di matlab però qualcosa so:

Se vuoi tutti i grafici in uno devi dare il comando
hold on


Se invece vuoi fare tanti grafici usa il comando
figure(n)
prima di ogni grafico , con n intero crescente

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.