Matlab - Index exceeds matrix dimensions.

   
Vista:

Index exceeds matrix dimensions.

Publicado por Pablo (9 intervenciones) el 26/07/2017 20:18:55
Hola, mi problema es el siguiente: Estoy realizando una programación para un proceso de absorción, pero al memento de solicitar el cálculo de error (en el código if abs(err(3))<1e-8 % Definición para el rango del error), me aparece el mensaje de "Index exceeds matrix dimensions", sin embargo, estoy comparando matrices 1x1 (o al menos eso creo yo). Les dejaré la parte de la programación con la que tengo problemas y agradecería cualquiera ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
%% INICIO DEL MÉTODO ITERATIVO %%
 
% Ajuste de unidades
 
Mg=180.16; % Masa molecular de la glucosa en g/mol
C_gf0_trans=C_gf0.*(1000./Mg); % Concentración de glucosa inicial en la alimentación en mol/m^3
 
tic % Inicio del reloj
 
for t=0:dt:60; % Equivalente a una hora en minutos
 
    % Método Regla Falsa.
    C2(1)=0.0000001*C_gf0_trans;
    C2(2)=0.9999999*C_gf0_trans;
    PRO=-1;
 
    while PRO<0;
        for I=1:3;
 
            % Determinación del flujo de glucosa transferido mediante
            % balance de masa
 
            C_gf_out=C2(I); % Concentración de glucosa de salida en el flujo de alimentación
            Q_f_out=Q_f; % Debido a que la variación porcentual es menor al 5%
            w_glu=(Q_f.*C_gf0_trans)-(Q_f_out.*C_gf_out); % Flujo de glucosa transferido en mol/s
 
            % Determinación del flujo de glucosa transferido mediante
            % teorema de resistencia en serie
 
            A_T=1.7; % Área de transferencia total  del modulo de membrana en m^2
            log_g=log(C_gf0_trans./C_gf_out);
            Delta_Cg=(C_gf0_trans-C_gf_out)./log_g;
            Ng=K_T.*A_T.*Delta_Cg; % Flujo de glucosa transferido en mol/s
 
            % Definición del Error
 
            err(I)=(w_glu-Ng)./w_glu;
            U=0;
 
            if I==2
                C2(3)=((C2(1).*err(2))-(C2(2).*err(1)))./(err(2)-err(1));
 
            end
 
            if U~=0
               err(3)=100; % Alto error
               break
            end
 
            if abs(err(3))<1e-8 % Definición para el rango del error
                break
            end
 
        end
        INTER=err(1).*err(3);
        if INTER<0
            C2(2)=C2(3);
        else
            C2(1)=C2(3);
        end
 
    PRO=err(1)*err(2);
 
    end
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH

Index exceeds matrix dimensions.

err es solo un número, no puedes acceder a la tercera posición porque no está definida la tercera posición ya que solo es un número
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Index exceeds matrix dimensions.

Publicado por Pablo (9 intervenciones) el 26/07/2017 21:27:10
err(3) si es un solo número, pero hay tres valores de err. err(I) con I=1:3, o me equivoco? Se supone (o al menos, esa era mi intensión), el err(3) está asociado al error para el calculo de la concentración C2(3).
Gracias por la pronta respuesta!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH

Index exceeds matrix dimensions.

solo hay uno , ese err(3) no está definido al llegar al condicional del valor absoluto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Index exceeds matrix dimensions.

Publicado por Pablo (9 intervenciones) el 26/07/2017 23:41:11
Entiendo! muchas gracias, ya lo solucioné... al menos eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad