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
0