我用matlab编蒙特卡洛模拟程序,定义的矩阵为765*1000,结果显示Cannot display variables with more than 524288 elements.我该咋办????多谢!!!以下是代码function [b,c,sy]=mengtekaluo(a)a=ones(765,1000);x =0.00085; % 0.00099569414621 收益率均值y = 0.028; % 0.022786669201207 收益率标准差a(1,:)=9722.22;for i=1:764 for j=1:1000 a(i+1,j)=a(i,j)*exp(normrnd(x,y^2)); %生成随机数 endendb=a;%判断表现水平 得出预期收益率for i=1:1000 c(1,i)=1; for j=2:765 c(j,i)=a(j,i)/a(1,i); % 表现水平 endendc;for i=1:1000 [m,n]=size(find(c(:,i)>=1.5)); if n>0 sy(i)=0.09; end if c(765,i)>1 & c(765,i)<1.5 sy(i)=0.6*(c(765,i)-1); else c(765,i)<1 sy(i)=0; endendsy;
%function [b,c,sy]=mengtekaluo(a)fp=fopen('f:/liu.txt','wt');a=ones(765,1000); x =0.00085; % 0.00099569414621 收益率均值 y = 0.028; % 0.022786669201207 收益率标准差 a(1,:)=9722.22; for i=1:764 for j=1:1000 a(i+1,j)=a(i,j)*exp(normrnd(x,y^2)); %生成随机数 end end b=a; %判断表现水平 得出预期收益率 for i=1:1000 c(1,i)=1; for j=2:765 c(j,i)=a(j,i)/a(1,i); % 表现水平 end end c; for i=1:1000 [m,n]=size(find(c(:,i)>=1.5)); if n>0 sy(i)=0.09; end if c(765,i)>1 & c(765,i)<1.5 sy(i)=0.6*(c(765,i)-1); else c(765,i)<1 sy(i)=0; end end sy;for i=1:765 for j=1:1000 fprintf(fp,'%f ',b(i,j));%把b输到文件里end fprintf(fp,'/n');end fclose(fp); |
|