How do I pass a vector into a user-defined function?
5 次查看(过去 30 天)
显示 更早的评论
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))
0 个评论
采纳的回答
Andrew Newell
2011-3-13
It looks like all you need to do is replace each * by .*, each ^ by .^ and each / by ./
0 个评论
更多回答(1 个)
Oleg Komarov
2011-3-13
You have to use:
- ./
- .*
- .^
whenever the operation involves TWO arrays of the same dimension to obtain elementwise division, multiplication or power.
Oleg
0 个评论
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!