Matlab - Llamar variables vectoriales con global

   
Vista:

Llamar variables vectoriales con global

Publicado por Victor (1 intervención) el 04/03/2015 07:26:01
No se la forma de escribir este codigo o si se puede hacer, quiero llamar unas variables son subindeces creados con un codigo "for" de mi programa principal a una funcion(subprograma).

no escribi todo el codigo, pero mas adelante en el programa principal mando llamar a la funcion

mi pregunta es: ¿como utilizar el codigo "global" para variables vectoriales?


este es el codigo del programa principal:

clc;
clear;
%Laboratorio 5
global N Pa(i) .........aqui es el problema
N=input('Numero de componentes ');
p=75;
for i=1:1:N
X(i)=input('fraccion componente ');
Pa(i)=input('presion 1 componente ');
Pb(i)=input('presion 2 componente ');
Ta(i)=input('Temperatura 1 componente ');
Tb(i)=input('Temperatura 2 componente ');
end

SUBPROGRAMA( funcion)

function t = ft(x)
global N Pa(i) .........aqui es el problema
for i=1:1:N
global Pa(i) Pb(i) Ta(i) Tb(i)
[A,B] = constantes(Pa(i),Pb(i),Ta(i),Tb(i));
f(i)=((exp(A+(B/x)))*(X(i)))-p;
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 JOSE JEREMIAS CABALLERO

Llamar variables vectoriales con global

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 04/03/2015 12:32:50
Como no veo todo tu código no puedo decirte cuales serian los posibles errores.
En vez de escribir Pa(i) solo debes escribir Pa
Unos de los posibles errores, en tu función ft(), usas p, pero sin embargo en esa función no esta definido el valor de p, también usas X(i) pero sien embargo no esta definido, tampoco veo donde usas la función ft() que haz creado. También en la función ft() usas otra función constantes(), pero en el código que haz copiado al foro no se encuentra. En tu código script solo declaras como global Pa, pero sin embargo en la función ft() todo los quieres usar como global caso no puede ser asi, si no haz declarado como global anteriormente.


Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Llamar variables vectoriales con global

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 04/03/2015 12:57:21
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
function laboratorio5
     %Laboratorio 5
     global  p  Pa Pb Ta Tb X N %aqui es el problema
     N=input('Numero de componentes :');
     p=75;
     for i=1:N
     X(i)=input('fraccion componente: ');
     Pa(i)=input('presion 1 componente :');
     Pb(i)=input('presion 2 componente :');
     Ta(i)=input('Temperatura 1 componente :');
     Tb(i)=input('Temperatura 2 componente :');
     end
     x=4;
    t = ft(x)
end
 
 %SUBPROGRAMA( funcion)
 
 function t= ft(x)
     global  p N Pa  Pb Ta Tb   X    %.........aqui es el problema
     for i=1:N
         [A,B] = constantes(Pa(i),Pb(i),Ta(i),Tb(i));
         t(i)=((exp(A+(B/x)))*(X(i)))-p;
     end
 end
 
 
 function [A,B]= constantes(a,b,c,d)
 A=a+b;
 B=c*d;
 
 end




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>> laboratorio5
Numero de componentes :2
fraccion componente: 1
presion 1 componente :4
presion 2 componente :5
Temperatura 1 componente :6
Temperatura 2 componente :7
fraccion componente: 8
presion 1 componente :5
presion 2 componente :6
Temperatura 1 componente :7
Temperatura 2 componente :8
 
t =
 
   1.0e+11 *
 
    0.0029    5.7604


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