Esta página es para la versión anterior. La página correspondiente en inglés ha sido eliminada en la versión actual.

Agregar funciones a scripts

Los scripts de MATLAB®, incluidos los scripts en directo, pueden contener código para definir funciones. Estas funciones se denominan funciones locales.

Las funciones locales son útiles cuando se trabaja con funciones que requieren identificadores de función como entradas. Por ejemplo, supongamos que desea encontrar la raíz de la función

<math display="block">
<mrow>
<mi mathvariant="italic">f</mi>
<mrow>
<mo>(</mo>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mo>)</mo>
</mrow>
<mo stretchy="false">=</mo>
<msup>
<mrow>
<mn>6</mn>
<mi mathvariant="italic">x</mi>
</mrow>
<mrow>
<mn>3</mn>
</mrow>
</msup>
<mo></mo>
<mn>5</mn>
<msup>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
<mtext></mtext>
<mo></mo>
<mtext></mtext>
<mn>16</mn>
<mi mathvariant="italic">x</mi>
<mo></mo>
<mn mathvariant="normal">100</mn>
</mrow>
</math>

Podemos definir una función local para calcular los valores de

<math display="inline">
<mrow>
<mi mathvariant="italic">f</mi>
<mrow>
<mo>(</mo>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
</math>
y ponerlo al final del guión.

Para calcular la raíz de la función

<math display="inline">
<mrow>
<mi mathvariant="italic">f</mi>
<mrow>
<mo>(</mo>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
</math>
, utilice la función.fzero Llame mediante el identificador de función y un valor inicial de 2.fzero f

x0 = 2; % initial value rt = fzero(@f, x0)
rt = 3.2418 

Una vez que haya calculado la raíz, puede trazar

<math display="inline">
<mrow>
<mi mathvariant="italic">f</mi>
<mrow>
<mo>(</mo>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
</math>
y la raíz de
<math display="inline">
<mrow>
<mi mathvariant="italic">f</mi>
<mrow>
<mo>(</mo>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
</math>
.

conspirar

<math display="inline">
<mrow>
<mi>y</mi>
<mo stretchy="false">=</mo>
<mi>f</mi>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
</math>
Para
<math display="inline">
<mrow>
<mn>0</mn>
<mo></mo>
<mi mathvariant="italic">x</mi>
<mo></mo>
<mn>4</mn>
</mrow>
</math>
:

x = 0:4; y = f(x); plot(x, y)

Añadir al trazado la línea horizontal

<math display="inline">
<mrow>
<mi mathvariant="italic">x</mi>
<mo stretchy="false">=</mo>
<mi mathvariant="normal">rt</mi>
</mrow>
</math>
Dónde
<math display="inline">
<mrow>
<mi mathvariant="normal">rt</mi>
</mrow>
</math>
es la raíz de
<math display="inline">
<mrow>
<mi>f</mi>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
</math>
.

hold on plot([rt,rt], [-150, 150]) 

Todas las definiciones de función local deben colocarse al final del archivo, después del código de script. Aquí está la definición de la función

<math display="inline">
<mrow>
<mi mathvariant="italic">f</mi>
<mrow>
<mo>(</mo>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mo>)</mo>
</mrow>
<mo stretchy="false">=</mo>
<msup>
<mrow>
<mn>6</mn>
<mi mathvariant="italic">x</mi>
</mrow>
<mrow>
<mn>3</mn>
</mrow>
</msup>
<mo stretchy="false"></mo>
<mn>5</mn>
<msup>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
<mtext></mtext>
<mo stretchy="false"></mo>
<mtext></mtext>
<mn>16</mn>
<mi mathvariant="italic">x</mi>
<mo></mo>
<mn mathvariant="normal">100</mn>
</mrow>
</math>
como la función local, con una entrada de y una salida de.fxy

function y = f(x)     y = 6*x.^3 - 5*x.^2 -16*x - 100; end