
tabla de datos en funcion
Publicado por esteban (3 intervenciones) el 06/12/2016 05:24:42
Hola. Soy un tanto nuevo en matlab pero por un trabajo de la universidad me han encargado hacer algo que sencillamente no se como hacer.
Tengo una columna de datos en un bloc de notas, son muchisimos datos (solo numeros)
Estos datos los necesito poner en un programa del matlab, para comenzar, de una forma eficiente.
La idea, luego de eso, es que mediante una funcion logre hacer que a cada dato que tengo en el bloc de notas, le haga una operacion de paso a paso, es decir por ejemplo:
kn = k + g/(b*dt)*c + 1/(b*dt^2)*m;
u(1) = 0;
v(1) = 0;
a(1) = (p(1) - v(1)*c - u(1)*k)/m;
n1=((1/b*dt^2)*m + (g/(b*dt))*c);
n2=((1/(b*dt))*m + ((g/b)-1)*c);
n3=((1/(2*b))-1)*m + dt*((g/(2*b))-1)*c;
%las variables que aparecen arriba, estan definidas en otra parte del programa, que no vi necesario poner aqui
%como por ej m, c, b, dt, etcc
for i=1:n-2
dp(i)=p(i)+(u(i).*n1)+(v(i).*n2);
u(i+1) = dp(i)./kn + u(i);
v(i+1) = (((u(i+1)-u(i))).*(g/(b*dt))+ v(i).*(1-(g/b)) + a(i).*dt*(1 - (g/(2*b)))) + v(i);
a(i+1) = ((u(i+1) - u(i)).* 1/(b*dt^2) - (v(i).* 1/(b*dt)) - (a(i).*1/(2*b))) + a(i);
la idea que tengo con esa funcion es que parta calculando el dp(1) para luego calcular el u(2) v(2) y a(2), luego pase a calcular el dp(2) con el nuevo valor que "debiese tomar" del p(2) el u(2) el v(2) y el a(2), luego el dp(2), dp(3) y etc, pero al final la funcion no hace eso, ya que los resultados que da son totalmente elevados.
Tengo una columna de datos en un bloc de notas, son muchisimos datos (solo numeros)
Estos datos los necesito poner en un programa del matlab, para comenzar, de una forma eficiente.
La idea, luego de eso, es que mediante una funcion logre hacer que a cada dato que tengo en el bloc de notas, le haga una operacion de paso a paso, es decir por ejemplo:
kn = k + g/(b*dt)*c + 1/(b*dt^2)*m;
u(1) = 0;
v(1) = 0;
a(1) = (p(1) - v(1)*c - u(1)*k)/m;
n1=((1/b*dt^2)*m + (g/(b*dt))*c);
n2=((1/(b*dt))*m + ((g/b)-1)*c);
n3=((1/(2*b))-1)*m + dt*((g/(2*b))-1)*c;
%las variables que aparecen arriba, estan definidas en otra parte del programa, que no vi necesario poner aqui
%como por ej m, c, b, dt, etcc
for i=1:n-2
dp(i)=p(i)+(u(i).*n1)+(v(i).*n2);
u(i+1) = dp(i)./kn + u(i);
v(i+1) = (((u(i+1)-u(i))).*(g/(b*dt))+ v(i).*(1-(g/b)) + a(i).*dt*(1 - (g/(2*b)))) + v(i);
a(i+1) = ((u(i+1) - u(i)).* 1/(b*dt^2) - (v(i).* 1/(b*dt)) - (a(i).*1/(2*b))) + a(i);
la idea que tengo con esa funcion es que parta calculando el dp(1) para luego calcular el u(2) v(2) y a(2), luego pase a calcular el dp(2) con el nuevo valor que "debiese tomar" del p(2) el u(2) el v(2) y el a(2), luego el dp(2), dp(3) y etc, pero al final la funcion no hace eso, ya que los resultados que da son totalmente elevados.
Valora esta pregunta


0