Matlab - Ayuda en function me dice error

   
Vista:

Ayuda en function me dice error

Publicado por Felipe felipesebastiantoledopalma@gmail.com (4 intervenciones) el 10/07/2014 01:38:17
Mi problema es el siguiente porfavor necesito que me ayuden, esta funcion calibra un parametro beta dada dos matrices de dimensiones iguales (mxm) no entiendo el error :( porfavor alguien que me oriente, soy nuevo en esto

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
function beta=calibra(v,c)
n=500;
[i,j]=size(v);
B=ones(1,j);
k=1;
err=100;
LP(1)=0;
error=input('Ingrese Valor Error deseado en % :');
while err>error
    k=k+1;
 
   for u=1:i
   LP(k)=(sum(sum(v.*c)))/(sum(sum(v)));
   beta(k)=1/LP(k);
   O(u,1)=sum(sum(v,2));
   D(u)=sum(sum(v));
 
   end
   for u=1:i
   A(u,1)=1/sum(sum((B.*D.*exp(-beta(k)*c(1,:)))));
   end
   for u=1:i
      B(u)=1/sum(sum((A.*O.*exp(-beta(k)*c(:,1)))));
   end
    for j=1:j
for i=1:i
    u=i;
    p=j;
    v(i,j)=A(i)*O(i)*B(j)*D(j)*exp(-beta*c(i,j));
 
end
    end
    err=((LP(k)-LP(k-1))/LP(k))*100;
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 Jorge De Los Santos

Ayuda en function me dice error

Publicado por Jorge De Los Santos (212 intervenciones) el 10/07/2014 05:25:06
Hola Felipe.

El error está en la siguiente línea:

1
v(i,j)=A(i)*O(i)*B(j)*D(j)*exp(-beta*c(i,j));


MATLAB devuelve un error porque intentas multiplicar valores escalares con un vector "beta" y el resultado de ello que es un vector NO puedes asignarlo a una posición de la matriz "v". Por lo cual lo más probable es que olvidases colocar el índice para "beta"...


Saludos.
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

Gracias

Publicado por Felipe (4 intervenciones) el 10/07/2014 16:55:21
Gracias por tu respuesta me fue de mucha ayuda
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