<P>一个比较简单的枚举方式:<br>function SumUnEquation<br>clc<br>x1=[15:65];<br>x2=x1;<br>x3=x1;<br>x4=x1;<br>y1=[];<br>y2=[];<br>for i=1:length(x1)<br> for j=1:length(x2)<br> for k=1:length(x3)<br> for l=1:length(x4)<br> if x1(i)+x2(j)+x3(k)+x4(l)==213<br> y1=[y1;i,j,k,l];<br> y2=[y2;x1(i),x2(j),x3(k),x4(l)];<br> else<br> y1=y1;<br> y2=y2;<br> end<br> end<br> end<br> end<br>end<br>save('results.mat','y1','y2')<br>计算速度很慢,对于sum值为213,共计求得19600组解,耗时 78.063692秒<br>个人意见:如果不讨论算法的改进而单纯使用循环或多重循环进行计算,MATLAB并没有长处,这样的问题用fortran算最好。</P>
[此贴子已经被作者于2006-6-30 12:18:40编辑过]
|