Programación Específica > Matlab

 problema de resultados

(1/1)

rabiel:
hola: estoy haciendo un programa en matlab, el codigo es el siguente

function[C2iterado C3iterado C]=calcc1(D,rop,C1,C4,L,k,K), tic
format long
clc
clf
Citer=1067911;
C2=C1-1;
J1=rop.*D.*(C1-C2)./L;
C3=0;
C=[C1 C2 J1 C3];
deltat=1;
Vp=7.3E-7;
Vas=1.23E-4;
A=5E-3;
for i=1:10000
    C(i+1,1)=C(1,1);
    C(i+1,2)=C(i,2)-1;
    C(i+1,3)=rop.*D.*(C(i+1,1)-C(i+1,2))./L;
    C(i+1,4)=C(i+1,3)./k;
    if C(i,2)<=C(i,4).*K;
        break
    end
end
C
C3iterado=[C(size(C,1),4)];
C2iterado=[C(size(C,1),2)];
x=[1:size(C(:,2))];
subplot(1,3,1),plot(x,C(:,2))
xlabel('i')
ylabel('C2 [mg/m^3]')
subplot(1,3,2),plot(x,C(:,3))
xlabel('i')
ylabel('J1 [mg/(m^2*s)]')
subplot(1,3,3),plot(x,C(:,4))
xlabel('i')
ylabel('C3 [mg/m^3]')
CiEE=[C2iterado C3iterado];
C1paranuevaiteracion=((1-rop.*D.*A.*deltat./(L.*Vp)).*C(1,1)+(rop.*D.*A.*deltat./(L.*Vp)).*C2iterado);
C4paranuevaiteracion=((1-k.*A.*deltat./Vas).*C(1,4)+(k.*A.*deltat./Vas).*C3iterado);

    if C1paranuevaiteracion>=Citer.*0.9
    calcc1(D,rop,C1paranuevaiteracion,C4paranuevaiteracion,L,k,K)
   
    end
toc
 necesito que en el termino definido como CiEE se guarde el resultado de la primera solucion (como ya esta escrito) y a continuacion al hacer el if empiece a guardar los resultados para cada nueva solucion del problema, para obtener una matriz CiEE con la soluciones de todos los calculos que hizo, alguien sabe como hacerlo???

si no se entiende lo q necesito porfavor avisenme :P

saludos
y gracias de ante mano

Navegación

[0] Índice de Mensajes

Ir a la versión completa