La Red de Conocimientos Pedagógicos - Conocimientos históricos - ¿Por qué el resultado es incorrecto después de llamar a la función en matlab? Por favor, ayúdenme~~Gracias~~

¿Por qué el resultado es incorrecto después de llamar a la función en matlab? Por favor, ayúdenme~~Gracias~~

Si se utiliza una variable global en una función, primero debe definirse como una variable global en la ventana de comandos, por lo que debe ingresarla en la ventana de comandos de esta manera

. global v w p n;

Global v w p n;

p>

x=;p=;n=4;

Por lo tanto, es mejor no utilizar variables globales en funciones Se puede escribir de la siguiente forma:

función f=fval(k,x,v,w,p,n)

if nargin==2.

v=50;w=;p=;n=4;

fin;

si nargin==3

w =;p=;n=4;

fin;

si nargin==4

p=;n=4;

fin;

si nargin==5

n=4;

fin

temp1=0;

temp2=0;

para h=1: n

p>

temp1=temp1 w(h)*x(h,k);

temp2=temp2 p(h)*x(h,k);

fin

temp1=temp1-v;

max=0 ;

if (0lt;temp1)

max=temp1;

p>

else

max=0; /p>

end

f=temp2-k*100*max;

Entonces, al llamar, puedes directamente x=[1 0 1; 0 0]; fval (1,x).