声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1602|回复: 6

[编程技巧] 新手提问,关于编程之后完全无反应

[复制链接]
发表于 2006-5-4 19:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
由于论文需要,这几天看了一个编程的范例,在Matlab上试验后,输入数据与程序均正常无错误,但是最后enter运行后,matlab完全没有反应了。也没有输出,请问这是为什么?是不是关键在
formats=[formati,'\n'];
fid=fopen('001.DEA.approach.txt','w');
fprintf(fid,'%s\n',s1);
fprintf(fid,'%s\n',s3);
fprintf(fid,formatr,RR');
fprintf(fid,'\n');
fprintf(fid,'%s\n',s2);
fprintq(fid,'%s\n',s4);
fprintf(fid,formati,II');
fclose(fid);
这几句上?(附上源程序)
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-5-4 19:36 | 显示全部楼层

回复:(simonphlk)新手提问,关于编程之后完全无反应...

  1. [t1,Ninput]=size(BBI);
  2. [t2,Noutput]=size(BBO);
  3. for i=1:Ninput
  4.     switch BBI(1,i)
  5.     case 1
  6.           str1(i,:)='人数         ';
  7.     case 2
  8.           str1(i,:)='机构数      ';
  9.     case 3
  10.           str1(i,:)='固定资产净值  ';
  11.     case 4
  12.           str1(i,:)='营业支出       ';
  13.     case 5
  14.           str1(i,:)='ATM&POS      ';
  15.     case 6
  16.           str1(i,:)=='所有者权益   ';
  17.                               end
  18.                           end
  19. for i=1:Noutput
  20. switch BBO(1,i)
  21. case 7
  22.       str2(i,:)='净利息     ';
  23. case 8
  24.       str2(i,:)='非利息     ';
  25. case 9
  26.       str2(i,:)='营业收入   ';
  27. case 10
  28.       str2(i,:)='存款       ';
  29. case 11
  30.       str2(i,:)='贷款       ';
  31. case 12
  32.       str2(i,:)='资本收益   ';
  33. case 13
  34.       str2(i,:)='资产增加   ';  
  35. case 14
  36.       str2(i,:)='资产收益   ';
  37. case 15
  38.       str2(i,:)='卡         ';
  39. case 16
  40.       str2(i,:)='卡交易额   ';
  41. case 17
  42.       str2(i,:)='不良下降率   ';
  43. case 21
  44.       str2(i,:)='新增存贷款总额  ';
  45.                           end
  46.                         end
  47.   sstrl=cellstr(str1)';
  48.   sstr2=cellstr(str2)';
  49.   sstrl=[cellstr('效率'),sstr1];
  50.   sstr2=[cellstr('效率'),sstr2];
  51.   sstr=[cellstr ('效率'),sstr1,sstr2];
  52.   stl=char(sstrl);
  53.   st2=char(sstr2);
  54.   st=char(sstr);
  55.   [ml,n]=size(st1);
  56.   [m2,n]=size(st2);
  57.   [m,n]=size(st);
  58.     s1=deblank(stl(1,:));
  59.     s2=deblank(st2(1,:));
  60.   for i=2:m1
  61.       len=30-2*length(deblank(st1(i,:)));
  62.       front=round(len/2);
  63.       back=30-front-2*length(deblank(stl(i,:)));
  64.     s1=[s1,blanks(front),deblank(stl(i,:)),blanks(back)];
  65. end
  66. for i=2:m2
  67.        len=30-2*length(deblank(st2(i,:)));
  68.         front=round(len/2);
  69.         back=30-front-2*length(deblank(st2(i,:)));
  70.     s2=[s2,blanks(front),deblank(st2(i,:)), blanks(back)];
  71. end
  72. for i=1:m
  73. s(i,:)=[st(i,:) blanks(15)];
  74. end
  75. %B=BB
  76. BB=[BBI(2:t1,:),BBO(2:t1,:)];
  77. %B=BB
  78. B=[BB(1,:)/40;BB(2,:)/30;BB(3,:)/15;BB(4,:)/40;BB(5:t1-1,:)];
  79. %Ninput 投入数
  80. %Noutput 产出数
  81. %N 银行个数
  82. N=t1-1
  83. X=B(1:N,1:Ninput);
  84. Y=B(1:N,(Ninput+1):(Ninput+Noutput));
  85. e=0.00000001;
  86. ee=ones(1,(Ninput+Noutput));
  87. f=[zeros(1,N); -e*ee,1];
  88. XX=X';
  89. YY=Y';
  90. lbound=zeros((N+Ninput+Noutput),1);
  91. for i=1:N
  92. AA(:,:,i)=[XX,eye(Ninput),zeros(Ninput,Noutput),-XX(:,i);
  93.   YY,zeros(Noutput,Ninput),-eye(Noutput),zeros(Noutput,1)];
  94.   %ones(1,N),zeros(1,(Ninput+Noutput+1))]
  95.   bb(:,i)=[zeros(1,Ninput),YY(:,i)']';
  96. % bb(:,i)=[zeros(1,Ninput),YY(:,i)',1]'
  97.   options=optimset('largeScale','on','MaxIter',10^30,'TolFun',10^(-30));
  98.   %[Xopt(:,i),fopt(i),exitflag(i)]=linprog(f,[],[],AA(:,:,i),bb(:,i),lbound,ub(:,i));
  99.   [Xopt(:,i),fopt(i),exitflag(i),output(i)]=Iinprog(f,[],[],AA(:,:,i),bb(:,i),lbound);
  100. end
  101. Xopt;
  102. Thita=Xopt((N+1+Ninput+Noutput),:)';
  103. XXopt=[Xopt((N+1):(N+Ninput+Noutput),1)'*40;
  104.     Xopt((N+1):(N+Ninput+Noutput),2)'*30;
  105.     Xopt((N+1):(N+Ninput+Noutput),3)'*15;
  106.     Xopt((N+1):(N+Ninput+Noutput),4)'*40;
  107.     Xopt((N+1):(N+Ninput+Noutput),5:N)'];
  108. XXXopt=[Thita,XXopt];
  109. exitflag
  110. for i=1:N
  111.   for j=1:Ninput
  112.       R1(i,j)=((1-Xopt((I+Ninput+Noutput+N),i))*BB(i,j)+XXopt(i,j));
  113.       R2(i,j)=((1-Xopt((1+Ninput+Noutput+N),i))*BB(i,j)+XXopt(i,j))/BB(i,j);
  114.   end
  115.   for k=1:Ninput
  116.       R(i,2*k-1)=R1(i,k);
  117.       R(i,k*2)=R2(i,k)* 100;
  118.   end
  119.    for j=1:Noutput
  120.        I1(i,j)=XXopt(i,(Ninput+j));
  121.        I2(i,j)=XXopt(i,(Ninput+j))/BB(i,j+Ninput);
  122.        I(i,j)=I1(i,j);
  123.        I(i,2*j)=I2(i,j);
  124.   end
  125.   for k=1:Noutput
  126.       I(i,2*k-1)=Il(i,k);
  127.       I(i,k*2)=I2(i,k)*100;
  128.   end
  129. end
  130. RR=[Thita,R];
  131. II=[Thita,I];
  132. II(:,2)=round(II(:,2));
  133. [mi,ni]=size(II);
  134. [mr,nr]=size(RR);
  135. formatr='%4.2f';
  136. formats=[formatr,'%15.0f'];
  137. formats='%4.2f';
  138. s3=blanks(4);
  139. s4=blanks(4);
  140. for i=1:(nr-1)/2
  141.     s3=[s3,blanks(9),'冗余量',blanks(9),'冗余率'];
  142. end
  143. for i=1:(ni-1)/2
  144.     s4=[s4,blanks(9),'不足量',blanks(9),'不足率'];
  145. end
  146. for j=2:nr-1
  147.       fomatr=[formatr,'%15.1f'];
  148. end
  149. formatr=[formatr,'\n'];
  150. for j=l:ni-1
  151.     formati=[formati; '%15.1f'];
  152. end
  153. formats=[formati,'\n'];
  154. fid=fopen('001.DEA.approach.txt','w');
  155. fprintf(fid,'%s\n',s1);
  156. fprintf(fid,'%s\n',s3);
  157. fprintf(fid,formatr,RR');
  158. fprintf(fid,'\n');
  159. fprintf(fid,'%s\n',s2);
  160. fprintq(fid,'%s\n',s4);
  161. fprintf(fid,formati,II');
  162. fclose(fid);
复制代码
 楼主| 发表于 2006-5-4 20:01 | 显示全部楼层
很急,请高手看看,谢谢了~~<BR>
发表于 2006-5-4 20:39 | 显示全部楼层

回复:(simonphlk)新手提问,关于编程之后完全无反应...

没仔细看,但注意你要把要输出的变量及表达式语句后的“;”号去掉。
发表于 2006-5-4 22:49 | 显示全部楼层
哦,你输出到文件的那就没有我上面所说的问题了。新手还能编这么好,佩服。
^_^
 楼主| 发表于 2006-5-4 22:55 | 显示全部楼层
太谢谢了~~但是这个不是我编的,是一个范例来的,我只是由于需要用到这个范例的模型才使用。。。
问题是输出到文件也不成功,是否有什么要求?例如文件的位置等等。。。
是我输入完enter之后这个计算的结果就能直接输出的文件里么~~?
fid=fopen('001.DEA.approach.txt','w');
是不是要改为类似与fid=fopen('D:\001.DEA.approach.txt','w');
这样。。指定文件的位置?可是好像也不成功。。
实在不行就不要输出到文件算了--b
 楼主| 发表于 2006-5-4 23:18 | 显示全部楼层
还有,这一段
[t1,Ninput]=size(BBI);
[t2,Noutput]=size(BBO);
for i=1:Ninput
switch BBI(1,i)
case 1
str1(i,:)='人数 ';
case 2
str1(i,:)='机构数 ';
case 3
str1(i,:)='固定资产净值 ';
case 4
str1(i,:)='营业支出 ';
case 5
str1(i,:)='ATM&POS ';
case 6
str1(i,:)=='所有者权益 ';
end
end
此处用两个end时~运行后显示??? Subscripted assignment dimension mismatch.
而用一个end,或不用end就会会产生上面那种无反应的状况。。。此处的两个end有问题么????
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 22:59 , Processed in 0.064286 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表