Matlab - problema con un for, solo me deja el ultimo valor

 
Vista:

problema con un for, solo me deja el ultimo valor

Publicado por Juan Manuel (1 intervención) el 07/03/2017 19:54:56
Saludos
tengo un problema, al hacer un ciclo for, evaluando una ecuación, solo me deja el ultimo valor y necesito que me almacene todos los valores en un vector, el codigo es el siguiente:
1
2
3
4
5
6
7
k=((1-2*u)/(2*(1-u)))^(1/2)
 
W=@(Z) (Q/Z^2)*(1/(2*k^2*pi))*(1/(1+(r/(k*Z))^2))^(3/2)
for i=1:15
    Y=W(i)
 
end
Muchas gracias quedo atento a su respuesta
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 Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

problema con un for, solo me deja el ultimo valor

Publicado por Daniel (264 intervenciones) el 07/03/2017 20:23:11
1
2
3
4
5
6
7
8
k=((1-2*u)/(2*(1-u)))^(1/2);
 
W=@(Z) (Q/Z^2)*(1/(2*k^2*pi))*(1/(1+(r/(k*Z))^2))^(3/2);
for i=1:15
Y(i)=W(i);
end
 
disp(Y)
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 Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

problema con un for, solo me deja el ultimo valor

Publicado por Daniel (264 intervenciones) el 07/03/2017 22:37:52
Esta solución no es correcta, ya que la función tal como está escrita no admite arrays, en tal caso hay al menos dos opciones vectorizarla a mano (poner los puntos para que tome las operaciones correctamente):

1
2
3
W=@(Z) (Q./Z.^2).*(1/(2*k.^2*pi)).*(1./(1+(r./(k.*Z)).^2)).^(3/2);
 
Y=W(1:15);

o bien usar arrayfun, que hace eso mismo sin tener que cambiar la definición de la función

1
Y=arrayfun(W,1:15);

Saludos

Daniel
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

problema con un for, solo me deja el ultimo valor

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 07/03/2017 23:11:55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> clear all
u=5*rand;
Q=rand;
r=rand;
k=((1-2*u)/(2*(1-u)))^(1/2);
W=@(Z) (Q/Z^2)*(1/(2*k^2*pi))*(1/(1+(r/(k*Z))^2))^(3/2) ;
for i=1:15
Y(i)=W(i);
end
Y
Y =
  Columns 1 through 11
    0.0156    0.0046    0.0021    0.0012    0.0008    0.0005    0.0004    0.0003    0.0002    0.0002    0.0002
  Columns 12 through 15
    0.0001    0.0001    0.0001    0.0001


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero/
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