PDA

查看完整版本 : [MATLAB数学相关] 偏最小二乘回归——:"??? Subscripted assignment dimension mismatch."


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更上一层楼!

告别已逝过去
2013-01-13, 17:35
你看的是《基础化学计量学及其应用》这本书吧?matlab装的是哪个版本的