楼主: 锦sè♀
3283 0

[讨论交流] 如何用循环语句为数组的每一列赋值? [推广有奖]

  • 2关注
  • 0粉丝

已卖:310份资源

本科生

59%

还不是VIP/贵宾

-

威望
0
论坛币
1296 个
通用积分
0.7807
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
2767 点
帖子
73
精华
0
在线时间
71 小时
注册时间
2013-6-2
最后登录
2022-5-17

楼主
锦sè♀ 在职认证  学生认证  发表于 2014-12-10 23:53:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
原始数据为数组  putbytime(89*199)putbytime(1,:)放置的是相同到期日卖权的行权价格(升序排列)
putbytime(2:89,:)放置的是89日的199个卖权的价格(如果没上市则价格为0)
如图:
捕获.PNG
7.21日上市43个期权,7.23日上市38个期权,下图左栏为剩余到期天数/365,右栏为当日上期的期权数量
捕获1.PNG

现在,我只需要同一天上市的期权按照行权价格升序的前几个期权的数据,

为什么不能用for循环[size=14.2857151031494px]  putfortrade(:,i)=putbytime(:,i);来新建一个只有需要的数据的数组呢?
[size=14.2857151031494px]

若觉得问题抽象,请移步代码如下:

i=1;
n=1;
putfortrade=zeros(89,[]);
if(length(find(putbytime(1,1:ipo2(n,2))<s(find(T(:,1)==ipo1(n,1)),1)))==1)  

[size=14.2857151031494px]%%ipo1(:,1)为上市日期的剩余到期天数, ipo2(:,2)为上市日期所有已上市期权数量的累积值,二者一一对应,if语句时为了判断改日上市的期权的价格是否小于当日现货价格,并计算当日虚值期权的数量,数量=1、<10、<15、>=15时,取不同的数量期权,将从[size=14.2857151031494px]putbytime数组中取出来的列按顺序赋值给[size=14.2857151031494px]putfortrade的每一列,可最后程序报错,说维数不匹配,希望朋友们帮忙看看。
[size=14.2857151031494px]

     putfortrade(:,i)=putbytime(:,i);
elseif length(find(putbytime(1,1:ipo2(n,2))<s(find(T(:,1)==ipo1(n,1)),1)))<10
     for j=i:length(find(putbytime(1,1:ipo2(n,2))<s(find(T(:,1)==ipo1(n,1)),1)))-1
         putfortrade(:,j)=putbytime(:,2:length(find(putbytime(1,2:ipo2(n,2))<s(find(T(:,1)==ipo1(n,1)),1))));

     end
elseif length(find(putbytime(1,1:ipo2(n,2))<s(find(T(:,1)==ipo1(n,1)),1)))<15
     for j=i:length(find(putbytime(1,1:ipo2(n,2))<s(find(T(:,1)==ipo1(n,1)),1)))-5
             putfortrade(:,j)=putbytime(:,6:length(find(putbytime(1,1:ipo2(n,2))<s(find(T(:,1)==ipo1(n,1)),1))));
     end
else for j=i:10
     putfortrade(:,j)=putbytime(:,i+4:i+13);
     end
end


二维码

扫码加我 拉你入群

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

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

关键词:循环语句 如何用 length Trade for循环 如何

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

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2026-1-1 00:51