How do I pass a vector into a user-defined function?

I am new to MATLAB and just started writing some preliminary functions, and I would like to knowhow to pass a vector as an argument (some of the arguments or all of them).
function [cprice] = cprice(spot, strike, ir, div, ndays,vol)
%Calculates BlackScholes price for Call Options
tir = ndays / 365;
dis = exp(-ir * tir);
F = spot * exp((ir - div) * tir);
d1 = (log(F / strike) + (((vol ^ 2) / 2) * tir)) / (vol * (tir ^ 0.5));
d2 = d1 - (vol * (tir ^ 0.5));
cprice = dis * ((normcdf(d1) * F) - (normcdf(d2) * strike))

 Respuesta aceptada

Andrew Newell
Andrew Newell el 13 de Mzo. de 2011

2 votos

It looks like all you need to do is replace each * by .*, each ^ by .^ and each / by ./

Más respuestas (1)

Oleg Komarov
Oleg Komarov el 13 de Mzo. de 2011

2 votos

You have to use:
  • ./
  • .*
  • .^
whenever the operation involves TWO arrays of the same dimension to obtain elementwise division, multiplication or power.
For details look at arithmetic operators
Oleg

Productos

Preguntada:

KKR
el 13 de Mzo. de 2011

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by