chrq1920
2012-12-29, 17:04
偏最小二乘回归问题(plsr):
运行程序出现:"??? Subscripted assignment dimension mismatch."错误提醒…………
我的plsr的MATLAB实施程序主要参考书上的,按照书上例子给的数据,运行程序过程没有错误提醒,结果和书上一样!
可是,换为我的实验数据,就出现错误提醒,搞了好就久都搞不明天,也在各个论坛搜索了相关帖子,还在没解决!!
——————————下面给出我的M文件说明:(上传不了附件?给了链接)————————http://forum.chinavib.com/thread-123263-1-1.html
1.PLSR_.m——函数初始化(使用的书本例子数据,其中调用pressf函数);2.PLSR_yushengrong.m——函数初始化(使用自己的实验数据,其中调用pressf函数);3.pressf.m——定义pressf函数,其中调用到函数pls_test和函数autoscaling;4.autoscaling.m——定义autoscaling函数;5.pls_test.m——定义pls_test.mf函数,其中调用到MATLAB工具箱自带函数plsr。6.顺便也上传MATLAB自带函数plsr的m文件——plsr.m。
以下是函数初始化加载到的数据说明:
书本例子数据_shujuX.mat和shujuY.mat;自己的实验数据:shuju_X.mat和shuju_Y.mat。每个mat文件下包含有与mat同名的变量。
——————————下面是遇到的问题————————
运行PLSR_.m文件,出结果,和书本一样;运行PLSR_yushengrong.m文件,出现错误提醒,如下:
??? Subscripted assignment dimension mismatch.
Error in ==> plsr at 54
w(:,i) = x'*y;
Error in ==> pressf at 31
[theta,w,cw,ssqdif,yres]=plsr(xreg,yreg,nox+1,lv);
Error in ==> PLSR_yushengrong at 11
[lv,theta,ycal,t,Tcrit,STATUS,ypre]=pressf(X,Y,xpre,alpha) %调用函数pressf.
————————————求高手指教——————
小生是MATLAB入门新手,我这问题,相信高手看来真不值一提,小菜一碟摆了!但是如果您们帮我解决了此难题,那对我的帮助可不小,小生必会万分感激!今后也向你们学习,热心帮助入门生!
感谢看帖的人,更感谢那些为他人伸出援助之手的人,有你们,【 Labfans】必定更强大!预祝祝大家元旦快乐,生活幸福美满,工作顺顺利利,2013更上一层楼!
运行程序出现:"??? Subscripted assignment dimension mismatch."错误提醒…………
我的plsr的MATLAB实施程序主要参考书上的,按照书上例子给的数据,运行程序过程没有错误提醒,结果和书上一样!
可是,换为我的实验数据,就出现错误提醒,搞了好就久都搞不明天,也在各个论坛搜索了相关帖子,还在没解决!!
——————————下面给出我的M文件说明:(上传不了附件?给了链接)————————http://forum.chinavib.com/thread-123263-1-1.html
1.PLSR_.m——函数初始化(使用的书本例子数据,其中调用pressf函数);2.PLSR_yushengrong.m——函数初始化(使用自己的实验数据,其中调用pressf函数);3.pressf.m——定义pressf函数,其中调用到函数pls_test和函数autoscaling;4.autoscaling.m——定义autoscaling函数;5.pls_test.m——定义pls_test.mf函数,其中调用到MATLAB工具箱自带函数plsr。6.顺便也上传MATLAB自带函数plsr的m文件——plsr.m。
以下是函数初始化加载到的数据说明:
书本例子数据_shujuX.mat和shujuY.mat;自己的实验数据:shuju_X.mat和shuju_Y.mat。每个mat文件下包含有与mat同名的变量。
——————————下面是遇到的问题————————
运行PLSR_.m文件,出结果,和书本一样;运行PLSR_yushengrong.m文件,出现错误提醒,如下:
??? Subscripted assignment dimension mismatch.
Error in ==> plsr at 54
w(:,i) = x'*y;
Error in ==> pressf at 31
[theta,w,cw,ssqdif,yres]=plsr(xreg,yreg,nox+1,lv);
Error in ==> PLSR_yushengrong at 11
[lv,theta,ycal,t,Tcrit,STATUS,ypre]=pressf(X,Y,xpre,alpha) %调用函数pressf.
————————————求高手指教——————
小生是MATLAB入门新手,我这问题,相信高手看来真不值一提,小菜一碟摆了!但是如果您们帮我解决了此难题,那对我的帮助可不小,小生必会万分感激!今后也向你们学习,热心帮助入门生!
感谢看帖的人,更感谢那些为他人伸出援助之手的人,有你们,【 Labfans】必定更强大!预祝祝大家元旦快乐,生活幸福美满,工作顺顺利利,2013更上一层楼!