楼主: sushuiasushui
7797 4

[问答] Matlab for循环结果被覆盖 [推广有奖]

  • 9关注
  • 0粉丝

已卖:13份资源

硕士生

26%

还不是VIP/贵宾

-

威望
0
论坛币
610 个
通用积分
22.9838
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1348 点
帖子
91
精华
0
在线时间
159 小时
注册时间
2011-12-16
最后登录
2019-7-16

楼主
sushuiasushui 发表于 2014-5-28 05:41:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位好,下面是我写的Code》
function [price]=EuropeanUpAndOutCall(S,X,B,r,d,deltaT,sigma)
%S is the current price of the underlying asset,
%X is the exercise price of the option,
%B is the barrier of the option,
%r is the risk-free rate,
%d is the dividend,
%deltaT is the time to maturity,
%sigma is the volatility of the asset price,
S = 1389.46;

NUM = xlsread('EuropeanUpAndOutCall.xls');

B = NUM(:,1);
X = NUM(:,2);
%问题的关键部分在下面
for i = 1:5
    deltaT = NUM(i,3);
    sigma = NUM(i,4);
    r = NUM(i,7);
    d = NUM(i,8);

lambda = (r-d+sigma^2/2)/(sigma^2);

y = (log(B.^2./(S*X)))/(sigma*sqrt(deltaT)+eps)+lambda*sigma*sqrt(deltaT);
x1 = (log(S./B))/(sigma*sqrt(deltaT)+eps)+lambda*sigma*sqrt(deltaT);
y1 = (log(B/S))/(sigma*sqrt(deltaT)+eps)+lambda*sigma*sqrt(deltaT);
d1 = (log(S./X)+(r-d+sigma^2/2)*deltaT)/(sigma*sqrt(deltaT)+eps);
d2 = d1-sigma*sqrt(deltaT);

f1 = S*exp(-d*deltaT)*normcdf(d1)-X*exp(-r*deltaT).*normcdf(d2);
f2 = -S*normcdf(x1)*exp(-d*deltaT)+X*exp(-r*deltaT).*normcdf(x1-sigma*sqrt(deltaT));
f3 = S*exp(-d*deltaT)*((B/S).^(2*lambda)).*(normcdf(-y)-normcdf(-y1));
f4 = X*exp(-r*deltaT).*((B/S).^(2*lambda-2)).*(normcdf(-y+sigma*sqrt(deltaT))-normcdf(-y1+sigma*sqrt(deltaT)));
price = f1 + f2 + f3 - f4;
end
end

最终的price是输出量,在for循环中,对于每一个i值得出的price是一个26行的向量,但是最后在命令窗口只出现最后循环的值,中间的price值被覆盖了,请问怎样能把所有的结果,即一个26行5列的矩阵输出到excel的表格里呢?
我在网上有搜到说先定义一个空矩阵a,最后在得出price值之后,再定义a =[a;price],但还是不行,请各位指教,实在不知道该怎么解决。。。多谢多谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla for循环 atlab Lab function exercise current option sigma

沙发
Xaero 发表于 2014-5-28 10:03:03
最前面: a=zeros(0,26)

循环内
a =[a,price]
十年一觉扬州梦。
智不足以Academy,才尚不够Industry,[情无力于Life]。

藤椅
Xaero 发表于 2014-5-28 10:05:07
先试试看。
十年一觉扬州梦。
智不足以Academy,才尚不够Industry,[情无力于Life]。

板凳
sushuiasushui 发表于 2014-5-30 05:03:34
试了,不成功。。问了别人,改成》
price = zeros(26,5);
........
price(:,ii) = f1 + f2 + f3 - f4;
最后成功了

报纸
sushuiasushui 发表于 2014-5-30 05:04:47
不过还是多谢你啦

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-10 23:39