Matlab - Como obtener un valor de la expresión F en Matlab

 
Vista:
sin imagen de perfil

Como obtener un valor de la expresión F en Matlab

Publicado por daniel (6 intervenciones) el 23/09/2017 03:05:52
Hola alguien me podrían ayudar o explicar este ejercicio que tengo por favor, quiero evaluar esto:

Defino un vector que va de 67 en .1 hasta 95,
d = 67:.1:95;

Luego calculo I= 1./(d.^2); finalmente declaro otro vector
n = 0:.1:28;

ahora quiero calcular F = (I(1+ n))/I(1); tomando en cuenta n y los valores arrojados por I, pero al calcularla me manda este error

Subscript indices must either be real positive integers or logicals.

Me podrían explicar como podría resolver esto, gracias!!
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
sin imagen de perfil

Como obtener un valor de la expresión F en Matlab

Publicado por daniel (6 intervenciones) el 23/09/2017 18:57:04
Hola, gracias por responder, solo que tengo una duda, si quiero que al calcular F = (I(1+ n))/I(1), usted me dice que es F=(I+n)/I(1) para no obtener el error que me produce y si, realiza el calculo sin problemas pero esta expresión que me brinda me calcula F de tal manera que me de el valor de

I (1) +n / I(1)
I (2) +n / I(1)
I (3) +n / I(1)
I (4) +n / I(1).....

y así sucesivamente hasta evaluar n e I para cada valor pero en una sola función? No se si me explico!!

Por su atención Gracias.
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
sin imagen de perfil

Como obtener un valor de la expresión F en Matlab

Publicado por daniel (6 intervenciones) el 26/09/2017 02:16:39
Hola gracias por su respuesta. Bueno después de esto quisiera que me explicaran como realizar una gráfica, a partir de la ayuda que me han proporcionado mi código es este

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
function f
 
%Matriz de datos
 A = [1.013 0.983 0.953 0.872 0.795 0.727 0.666 0.608 0.557 0.509 0.467 0.427 0.392 0.359 0.329 0.302 0.277 0.254 0.233 0.214 0.196 0.180 0.165 0.152 0.139 0.128 0.118];
 
% d Distancia
 d = 67:.1:95;
% Inverso cuadrado
 I = 1./(d.^2);
% Factor de Correccion
 n = 0:.1:28;
 F =(I+n)/(I(1));
 
 a = 5;
 b = 2.5;
 p = 6;
 t = 0.02;
 w = 15;
 x = -14:.1:14;
 
 f =(abs(x)>w/2).*(t+(0.5-t)*exp((-b/p)*(abs(x)-(w/2))))+(abs(x)<=w/2).*(1-(0.5)*exp((-a/p)*((w/2)-abs(x))))-.5;
 plot(x,f,'g-'),axis([-15 15 -1.2 1.2]);
 hold on
 
 f1 =(-1)*(abs(x)>w/2).*(t+(0.5-t)*exp((-b/p)*(abs(x)-(w/2))))+(-1)*(abs(x)<=w/2).*(1-(0.5)*exp((-a/p)*((w/2)-abs(x))))+.5;
 plot(x,f1,'r-'),axis([-15 15 -1.2 1.2]);
 hold on
 find (f==f1);
 
 g2 =((f+n)*A(1,1))/F(2)-1.0;
 plot(x,g2,'ro');


Donde tengo las constantes y variables definidas, f y f1 son mis funciones que deseo graficar las cuales están graficadas en la imagen que anexo(son las curvas de color verde y roja), casi todo funciona bien, el problema que tengo ahora es que quiero graficar g2 la cual depende de la funcion f y de el vector n ademas del primer valor de la matriz A y F(2), al parecer mi problema al graficar g2 es la parte donde defino (f+n), en la imagen que anexo trato de realizarla gráfica de g2 pero me la grafica en forma lineal, cuando debo de obtener una grafica curva como la curva color verde que se genera en la imagen, ojala me explique y me puedan ayudar, tal vez mi código le falte algo. Gracias!!!

Sin-titulo
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
sin imagen de perfil

Como obtener un valor de la expresión F en Matlab

Publicado por daniel (6 intervenciones) el 06/11/2017 03:40:04
Hola!! alguien podría orientarme? en mi ejercicio anterior publicado!
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