MATLAB提示输出参数过多,如何解决?。

23 次查看(过去 30 天)
vsscpbxt
vsscpbxt 2023-5-21
回答: ybumrvk 2023-5-21
close all
clear all
fidin=fopen('20131118B.txt');                    %打开文件one minute
fidout=fopen('data.txt','w');                    %创建文件,用于写进数据
while ~feof(fidin)                               %判断是否为文件末尾
tline=fgetl(fidin);                              %从文件中读取行
if double(tline(1))>=48&&double(tline(1))<=57    %判断首字符是否是数值
fprintf(fidout,'%s\n\n',tline);                  %如果是数字行,把此行数据写入文件data中
continue                                         %如果是非数字继续下一次循环
end
end
fclose(fidout);
M=importdata('data.txt');                        %将生成的data.txt文件导入到工作空间。
% M=importdata('one minute.txt');
%%%%%%%%%%%%%%%%%%数据处理%%%%%%%%%%%%%%%%%%%
b={'日期','时间','开盘价','最高价','最低价','收盘价','平均价','成交量','持仓量','STD30','STD60','SLOPE30','SLOPE60','DIF','DEA'};
xlswrite('C:\Users\Administrator\Desktop\2345.xlsx',b,'Sheet1','A1');
t=M.textdata(:,:);
p=M.data(:,4);                                  %取倒数第4列数据,即第6列数据。
DD=[t num2cell(M.data)];
xlswrite('C:\Users\Administrator\Desktop\2345.xlsx',DD,'Sheet1','A2');  
subplot(4,1,1)
plot(p)                                         %画出这行数据
xlabel('原始图形')
lgstr=cell(1,1);
                 
%%%%%%%%%%%%%%%%%%%%%求出N=12周期的EMA12%%%%%%%%%%%%%%%%%%%
N=12;
a=2/(N+1);
%%%%%%%%%%%%求EMA0,以用递推公式求出其他EMA1 EMA2....等%%%%%%%%%%%%%%%%
son0=p(1);
mum0=1;
for i=2:N
son0=son0+((1-a)^(i-1))*p(i);                 %求出EMA0的分子
mum0=mum0+((1-a)^(i-1));                      %求出EMA0的分母
end
EMA0=son0/mum0;                               %求出EMA0
EMA1=EMA0;
%%%%%%%%%%%%求EMA123..........到数据尾部%%%%%%%%%%%%%%%%%%%%%%%%%%
for j=N+1:length(p)                %以上已经计算第一个数据EMA0,因此从第N+1周期开始计算EMA作为有效数据的第二点,前面自动补充为0.加上第一个EMA0,总共有效长度为length(p)-N+1.
EMA0=EMA0+a*(p(j)-EMA0);                     %EMA(t1)=EMA(t0)+a(p-EMA(t0))以计算EMA(t1)。
EMA(j)=EMA0;
EMA1=[EMA1,EMA(j)];
end
x0=EMA1(1)*ones(1,N-1);
EMA12=[x0,EMA1];  
clear N EMA0 EMA1 a suno mumo
%%%%%%%%%%%%%%%%%%%%%求出N=26周期的EMA26,复制以上程序即可%%%%%%%%%%%%%%%%%%%%%%%%%%
        
N=26;
a=2/(N+1);
%%%%%%%%%%%%求EMA0,以用递推公式求出其他EMA1 EMA2....等%%%%%%%%%%%%%%%%
son0=p(1);
mum0=1;
for i=2:N
son0=son0+((1-a)^(i-1))*p(i);     %求出EMA0的分子
mum0=mum0+((1-a)^(i-1));          %求出EMA0的分母
end
EMA0=son0/mum0;                   %求出EMA0
EMA1=EMA0;
%%%%%%%%%%%%求EMA123..........到数据尾部%%%%%%%%%%%%%%%%%%%%%%%%%%
for j=N+1:length(p)               %以上已经计算第一个数据EMA0,因此从第N+1周期开始计算EMA作为有效数据的第二点,前面自动补充为0.加上第一个EMA0,总共有效长度为length(p)-N+1.
EMA0=EMA0+a*(p(j)-EMA0);          %EMA(t1)=EMA(t0)+a(p-EMA(t0))以计算EMA(t1)。
EMA(j)=EMA0;
EMA1=[EMA1,EMA(j)];
end
x0=EMA1(1)*ones(1,N-1);
EMA26=[x0,EMA1];
DIF=EMA12-EMA26;
subplot(4,1,4)
plot(DIF,'g')
clear N EMA0 EMA1 a suno mumo
%%%%%%%%%%%%%%%%%%%%%%%%%%求DIF的9点平均,即DEM%%%%%%%%%%%%%%
p=DIF;
N=9;
a=2/(N+1);
%%%%%%%%%%%%求EMA0,以用递推公式求出其他EMA1 EMA2....等%%%%%%%%%%%%%%%%
son0=p(1);
mum0=1;
for i=2:N
son0=son0+((1-a)^(i-1))*p(i);     %求出EMA0的分子
mum0=mum0+((1-a)^(i-1));          %求出EMA0的分母
end
EMA0=son0/mum0;                   %求出EMA0
EMA1=EMA0;
%%%%%%%%%%%%求EMA123..........到数据尾部%%%%%%%%%%%%%%%%%%%%%%%%%%
for j=N+1:length(p)                %以上已经计算第一个数据EMA0,因此从第N+1周期开始计算EMA作为有效数据的第二点,前面自动补充为0.加上第一个EMA0,总共有效长度为length(p)-N+1.
EMA0=EMA0+a*(p(j)-EMA0);           %EMA(t1)=EMA(t0)+a(p-EMA(t0))以计算EMA(t1)。
EMA(j)=EMA0;
EMA1=[EMA1,EMA(j)];
end
x0=EMA1(1)*ones(1,N-1);
DEM=[x0,EMA1];  
hold on
plot(DEM,'r')
xlabel('MACD')
%%%%%%%%%%%%%%%%%%%%%%%求OSC%%%%%%%%%%%%%%%%%%%%%%%%%
OSC=DIF-DEM;
hold on
bar(OSC,'k')
                 
xlswrite('C:\Users\Administrator\Desktop\2345.xlsx',DIF','Sheet1','N2');                  
xlswrite('C:\Users\Administrator\Desktop\2345.xlsx',DEM','Sheet1','O2');   
for i=1:length(DIF)
   
if DIF(i)<DEM(i)
    ok=disp('ok');
   
xlswrite('C:\Users\Administrator\Desktop\2345.xlsx',ok','Sheet1',P2);
end
end
for i=1:length(DIF)
if DIF(i)<DEM(i)
ok=disp('ok');
xlswrite('C:\Users\Administrator\Desktop\2345.xlsx',ok','Sheet1',‘P2’);
end
end
上面输出时提示输出参数太多,如何实现ok输出到对应的位置上,请各位 高手提点!谢谢

采纳的回答

ybumrvk
ybumrvk 2023-5-21
改成:
ok = 'ok';
xlswrite('C:\Users\Administrator\Desktop\2345.xlsx',ok',1,'P2');

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Deep Learning Toolbox 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!