matlab snapnow,关于MATLAB神经网络43个案例分析17章运行报错的问题

tic;

close all;

clear;

clc;

format compact;

%% 原始数据的提取

% 载入测试数据上证指数(1990.12.19-2009.08.19)

% 数据是一个4579*6的double型的矩阵,每一行表示每一天的上证指数

% 6列分别表示当天上证指数的开盘指数,指数最高值,指数最低值,收盘指数,当日交易量,当日交易额.

load chapter_sh.mat;

% 提取数据

ts = sh_open;

time = length(ts);

% 画出原始上证指数的每日开盘数

figure;

plot(ts,'LineWidth',2);

title('上证指数的每日开盘数(1990.12.20-2009.08.19)','FontSize',12);

xlabel('交易日天数(1990.12.19-2009.08.19)','FontSize',12);

ylabel('开盘数','FontSize',12);

grid on;

% print -dtiff -r600 original;

snapnow;

%% 对原始数据进行模糊信息粒化

win_num = floor(time/5);

tsx = 1:win_num;

tsx = tsx';

[Low,R,Up]=FIG_D(ts','triangle',win_num);

% 模糊信息粒化可视化图

figure;

hold on;

plot(Low,'b+');

plot(R,'r*');

plot(Up,'gx');

hold off;

legend('Low','R','Up',2);

title('模糊信息粒化可视化图','FontSize',12);

xlabel('粒化窗口数目','FontSize',12);

ylabel('粒化值','FontSize',12);

grid on;

% print -dtiff -r600 FIGpic;

snapnow;

%% 利用SVM对Low进行回归预测

% 数据预处理,将Low进行归一化处理

% mapminmax为matlab自带的映射函数

[low,low_ps] = mapminmax(Low);

low_ps.ymin = 100;

low_ps.ymax = 500;

% 对Low进行归一化

[low,low_ps] = mapminmax(Low,low_ps);

% 画出Low归一化后的图像

figure;

plot(low,'b+');

title('Low归一化后的图像','FontSize',12);

xlabel('粒化窗口数目','FontSize',12);

ylabel('归一化后的粒化值','FontSize',12);

grid on;

% print -dtiff -r600 lowscale;

% 对low进行转置,以符合libsvm工具箱的数据格式要求

low = low';

snapnow;

% 选择回归预测分析中最佳的SVM参数c&g

% 首先进行粗略选择

[bestmse,bestc,bestg] = SVMcgForRegress(low,tsx,-10,10,-10,10,3,1,1,0.1,1);

% 打印粗略选择结果

disp('打印粗略选择结果');

str = sprintf( 'SVM parameters for Low:Best Cross Validation MSE = %g Best c = %g Best g = %g',bestmse,bestc,bestg);

disp(str);

% 根据粗略选择的结果图再进行精细选择

[bestmse,bestc,bestg] = SVMcgForRegress(low,tsx,-4,8,-10,10,3,0.5,0.5,0.05,1);

% 打印精细选择结果

disp('打印精细选择结果');

str = sprintf( 'SVM parameters for Low:Best Cross Validation MSE = %g Best c = %g Best g = %g',bestmse,bestc,bestg);

disp(str);

% 训练SVM

cmd = ['-c ', num2str(bestc), ' -g ', num2str(bestg) , ' -s 3 -p 0.1'];

low_model = svmtrain(low, tsx, cmd);

% 预测

[low_predict,low_mse] = svmpredict(low,tsx,low_model);

low_predict = mapminmax('reverse',low_predict,low_ps);

predict_low = svmpredict(1,win_num+1,low_model);

predict_low = mapminmax('reverse',predict_low,low_ps);

predict_low

%% 对于Low的回归预测结果分析

figure;

hold on;

plot(Low,'b+');

plot(low_predict,'r*');

legend('original low','predict low',2);

title('original vs predict','FontSize',12);

xlabel('粒化窗口数目','FontSize',12);

ylabel('粒化值','FontSize',12);

grid on;

% print -dtiff -r600 lowresult;

figure;

error = low_predict - Low';

plot(error,'ro');

title('误差(predicted data-original data)','FontSize',12);

xlabel('粒化窗口数目','FontSize',12);

ylabel('误差量','FontSize',12);

grid on;

% print -dtiff -r600 lowresulterror;

% snapnow;

运行以后报错了,显示以下结果,但是下载下来的文件我都没有改过啊

警告: 不支持使用整数来指定图例位置。请使用 'Location' 参数来指定图例相对于坐标轴的位置。

> In legend>process_inputs (line 499)

In legend>make_legend (line 303)

In legend (line 254)

In chapter_FIGsh (line 115)

警告: 忽略额外的图例条目。

> In legend>set_children_and_strings (line 643)

In legend>make_legend (line 328)

In legend (line 254)

In chapter_FIGsh (line 115)

错误使用  -

矩阵维度必须一致。

出错 chapter_FIGsh (line 123)

error = low_predict - Low';

求大神帮解答一下。谢谢

2016-8-25 11:43 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

fde4497445e35fe86aceb420f3c4684b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值