Matlab - Funcion Matlab

 
Vista:

Funcion Matlab

Publicado por Dani (1 intervención) el 01/12/2011 20:23:34
Hola a todos, estoy tratando de hacer una funcion en Matlab para aproximar con la funcion del trapecio compuesto, la tengo echa ( esta mas abajo ) pero al poner el nombre en la ventana de comandos no me funciona... me sale un mensaje como este --> Undefined function or method 'tt' for input arguments of type 'double'.

El codigo es el siguiente :

function t = tt(a,b,h)
n=(a-b)/h;
t=0;
for i=1:(n-1)
x = a+h*i;
t = t + subs(f,x);
end
fa=subs(f,x,a);
fb=subs(f,x,b);
t = ((h/2)*(fa+fb+(2*t)))
end

Si alguien me puede ayudar se lo agradeceria, muchas gracias de antemano !!! Saludos.
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

Funcion Matlab

Publicado por Ioxune (1 intervención) el 19/01/2012 18:31:46
Hola yo tengo el mismo problema, el nombre esta exactamente igual y me sale el mismo mensaje, no se como solucionarlo, si teneis alguna otra solucion??

La funcion que me da erros es llamada desde otra funcion.


function [amp,fas,fo]=exc(Npitch,fs,N,trama);
fo=floor(1/(Npitch/fs));
af=floor(fs/N);
k=round(fo/af);
trastra=fft(trama);
amp=[];
fas=[];
for s=1:10;
amp1=abs(trastra(s*k+1));
amp2=(amp1*2)/N;
fas1=angle(trastra(s*k+1));
amp=[amp amp2];
fas=[fas fas1];
end

compilacion:

[amp,fas,fo]=exc(Npitch,fs,N,trama);

??? Undefined function or method 'exc' for input arguments of type 'double'.
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

Funcion Matlab

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 20/01/2012 14:06:43
hola Loxune.
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
function [amp,fas,fo]=fft1(Npitch,fs,N,trama)
%Npitch=10; fs=300;N=5;  trama=[1 2 3 -5  6 7 8 9 4 3 12  ];
fo=floor(1/(Npitch/fs));
af=floor(fs/N);
k=round(fo/af);
trastra=fft(trama);
amp=[];
fas=[];
for s=1:10;
amp1=abs(trastra(s*k+1));
amp2=(amp1*2)/N;
fas1=angle(trastra(s*k+1));
amp=[amp amp2];
fas=[fas fas1];
end
 
 
EJECUCION
>> Npitch=10; fs=300;N=5;  trama=[1 2 3 -5  6 7 8 9 4 3 12  ];
>> [amp,fas,fo]=fft1(Npitch,fs,N,trama)
 
amp =
    7.6092    5.8605    2.3936    8.7418    3.3234    3.3234    8.7418    2.3936    5.8605    7.6092
 
fas =
    2.0519    0.2097    2.3893    2.5405    1.8934   -1.8934   -2.5405   -2.3893   -0.2097   -2.0519
 
fo =
    30



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Profesor de Metodos Numericos con Matlab
Programador en Matlab
[email protected]
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

Funcion Matlab

Publicado por radio (9 intervenciones) el 01/01/2014 22:17:12
Hola. Me salta el mismo error. La función que definí en el editor para la regla del trapecio es:

1
2
3
4
5
6
7
function [A]=trapeciosb(a,b,n)
h=(b-a)/n;
i=1:n-1;
c=mrdivide(1,(a^2+1)^a+1)
d=mrdivide(1,(b^2+1)^ b+1)
e=mrdivide(1,((a+i*h)^ a+i*h+1)
[A]=0.5*h*(c+d+2*sum(e));

o sea...quiero resolver la integral desde cero a diez de [ (x^2 +1) ^ (x+1) ] ^ -1 con ese método. Lo grabé con el mismo nombre pero cuando en el Matlab pongo [A]=trapeciosb(0,10,n) , especificando algún valor para "n" me salta dicho error.
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

Funcion Matlab

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 02/01/2014 01:16:48
1
2
3
4
5
6
7
8
9
10
11
12
13
function A=trapeciosb(a,b,n)
 if nargin <1
      a=0;
      b=10;
      n=10;
 end
 h=(b-a)/n;
 c=mrdivide(1,(a^2+1)^a+1);
 d=mrdivide(1,(b^2+1)^b+1);
 for i=1:n-1
 e(i)=mrdivide(1,((a+i*h)^a+i*h+1));
 end
 [A]=0.5*h*(c+d+2*sum(e));



1
2
3
4
5
>>  [A]=trapeciosb(0,10,5)
 
A =
 
    1.7833
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

Funcion Matlab

Publicado por radio (9 intervenciones) el 02/01/2014 18:11:59
tengo otra duda con el método de los trapecios. En este ejercicio me piden que haga la integral desde cero a "b" del cociente entre t^3 y -1 + e^t en pasos de uno con un error menor que 10^-3 . Necesito que me arroje todos los valores correspondientes a esta operación. Yo lo hice para la variable "b" en el programa, pero cuando lo pruebo en el matlab me dice que esta variable no está definida...
Lo que puse en el editor es:

function [T]=trapeciosg(a,b)
for b=1:10;
h(b)=b-a;
d=mrdivide(a^3,exp(a)-1)
p(b)=mrdivide(b^3,exp(b)-1)
end
[T]=0.5*h*(d+p);
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

Funcion Matlab

Publicado por Miguel (1 intervención) el 17/04/2014 21:49:55
Me sucede el mismo problema pero con la función tf
el código es simple
N = [0 1];
D = [1 1 1];
P = tf(N,D)

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

Funcion Matlab

Publicado por Pao (1 intervención) el 21/04/2015 16:51:02
Era justo mi problema, soy nueva programando en MATLAB así que por muy básico que parezca no sabía eso.
Muchas 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