新手提问,关于编程之后完全无反应
由于论文需要,这几天看了一个编程的范例,在Matlab上试验后,输入数据与程序均正常无错误,但是最后enter运行后,matlab完全没有反应了。也没有输出,请问这是为什么?是不是关键在formats=;
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);
这几句上?(附上源程序)
回复:(simonphlk)新手提问,关于编程之后完全无反应...
=size(BBI);=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
for i=1:Noutput
switch BBO(1,i)
case 7
str2(i,:)='净利息 ';
case 8
str2(i,:)='非利息 ';
case 9
str2(i,:)='营业收入 ';
case 10
str2(i,:)='存款 ';
case 11
str2(i,:)='贷款 ';
case 12
str2(i,:)='资本收益 ';
case 13
str2(i,:)='资产增加 ';
case 14
str2(i,:)='资产收益 ';
case 15
str2(i,:)='卡 ';
case 16
str2(i,:)='卡交易额 ';
case 17
str2(i,:)='不良下降率 ';
case 21
str2(i,:)='新增存贷款总额';
end
end
sstrl=cellstr(str1)';
sstr2=cellstr(str2)';
sstrl=;
sstr2=;
sstr=;
stl=char(sstrl);
st2=char(sstr2);
st=char(sstr);
=size(st1);
=size(st2);
=size(st);
s1=deblank(stl(1,:));
s2=deblank(st2(1,:));
for i=2:m1
len=30-2*length(deblank(st1(i,:)));
front=round(len/2);
back=30-front-2*length(deblank(stl(i,:)));
s1=;
end
for i=2:m2
len=30-2*length(deblank(st2(i,:)));
front=round(len/2);
back=30-front-2*length(deblank(st2(i,:)));
s2=;
end
for i=1:m
s(i,:)=;
end
%B=BB
BB=;
%B=BB
B=;
%Ninput 投入数
%Noutput 产出数
%N 银行个数
N=t1-1
X=B(1:N,1:Ninput);
Y=B(1:N,(Ninput+1):(Ninput+Noutput));
e=0.00000001;
ee=ones(1,(Ninput+Noutput));
f=;
XX=X';
YY=Y';
lbound=zeros((N+Ninput+Noutput),1);
for i=1:N
AA(:,:,i)=[XX,eye(Ninput),zeros(Ninput,Noutput),-XX(:,i);
YY,zeros(Noutput,Ninput),-eye(Noutput),zeros(Noutput,1)];
%ones(1,N),zeros(1,(Ninput+Noutput+1))]
bb(:,i)=';
% bb(:,i)='
options=optimset('largeScale','on','MaxIter',10^30,'TolFun',10^(-30));
%=linprog(f,[],[],AA(:,:,i),bb(:,i),lbound,ub(:,i));
=Iinprog(f,[],[],AA(:,:,i),bb(:,i),lbound);
end
Xopt;
Thita=Xopt((N+1+Ninput+Noutput),:)';
XXopt=[Xopt((N+1):(N+Ninput+Noutput),1)'*40;
Xopt((N+1):(N+Ninput+Noutput),2)'*30;
Xopt((N+1):(N+Ninput+Noutput),3)'*15;
Xopt((N+1):(N+Ninput+Noutput),4)'*40;
Xopt((N+1):(N+Ninput+Noutput),5:N)'];
XXXopt=;
exitflag
for i=1:N
for j=1:Ninput
R1(i,j)=((1-Xopt((I+Ninput+Noutput+N),i))*BB(i,j)+XXopt(i,j));
R2(i,j)=((1-Xopt((1+Ninput+Noutput+N),i))*BB(i,j)+XXopt(i,j))/BB(i,j);
end
for k=1:Ninput
R(i,2*k-1)=R1(i,k);
R(i,k*2)=R2(i,k)* 100;
end
for j=1:Noutput
I1(i,j)=XXopt(i,(Ninput+j));
I2(i,j)=XXopt(i,(Ninput+j))/BB(i,j+Ninput);
I(i,j)=I1(i,j);
I(i,2*j)=I2(i,j);
end
for k=1:Noutput
I(i,2*k-1)=Il(i,k);
I(i,k*2)=I2(i,k)*100;
end
end
RR=;
II=;
II(:,2)=round(II(:,2));
=size(II);
=size(RR);
formatr='%4.2f';
formats=;
formats='%4.2f';
s3=blanks(4);
s4=blanks(4);
for i=1:(nr-1)/2
s3=;
end
for i=1:(ni-1)/2
s4=;
end
for j=2:nr-1
fomatr=;
end
formatr=;
for j=l:ni-1
formati=;
end
formats=;
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); 很急,请高手看看,谢谢了~~<BR>
回复:(simonphlk)新手提问,关于编程之后完全无反应...
没仔细看,但注意你要把要输出的变量及表达式语句后的“;”号去掉。 哦,你输出到文件的那就没有我上面所说的问题了。新手还能编这么好,佩服。^_^ 太谢谢了~~但是这个不是我编的,是一个范例来的,我只是由于需要用到这个范例的模型才使用。。。
问题是输出到文件也不成功,是否有什么要求?例如文件的位置等等。。。
是我输入完enter之后这个计算的结果就能直接输出的文件里么~~?
fid=fopen('001.DEA.approach.txt','w');
是不是要改为类似与fid=fopen('D:\001.DEA.approach.txt','w');
这样。。指定文件的位置?可是好像也不成功。。
实在不行就不要输出到文件算了--b 还有,这一段
=size(BBI);
=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有问题么????
页:
[1]