你在出错行之前加两行来诊断:disp(size(BestJ));disp(max(reshape(G,numel(G),1)));一下就能看出问题了。应该是G中的某些元素的值太大,大过了BestJ的最大sizeby the way,这段matlab程序用了太多的for循环,速度会很慢,完全没有体现出matlab作为矩阵语言的优势。