这段matlab程序怎么优化m=1;A=[0 3 5.5 7.5 9 10 10];B=[0 3 6 8 9.5 10.5 11];C=[0 4 6.5 8.5 9 9 9];D=[0 3.5 6 7.5 8.5 9 9];for i=1:7for j=1:7for k=1:7for l=1:7if i+j+k+l==10d(m)=A(i)+B(j)+C(k)+D(l);E(m,1)=i;E(m,2)=j;E(m,3)=k;E(m,4)=l;m=m+1;enden

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/19 13:23:44
这段matlab程序怎么优化m=1;A=[0 3 5.5 7.5 9 10 10];B=[0 3 6 8 9.5 10.5 11];C=[0 4 6.5 8.5 9 9 9];D=[0 3.5 6 7.5 8.5 9 9];for i=1:7for j=1:7for k=1:7for l=1:7if i+j+k+l==10d(m)=A(i)+B(j)+C(k)+D(l);E(m,1)=i;E(m,2)=j;E(m,3)=k;E(m,4)=l;m=m+1;enden

这段matlab程序怎么优化m=1;A=[0 3 5.5 7.5 9 10 10];B=[0 3 6 8 9.5 10.5 11];C=[0 4 6.5 8.5 9 9 9];D=[0 3.5 6 7.5 8.5 9 9];for i=1:7for j=1:7for k=1:7for l=1:7if i+j+k+l==10d(m)=A(i)+B(j)+C(k)+D(l);E(m,1)=i;E(m,2)=j;E(m,3)=k;E(m,4)=l;m=m+1;enden
这段matlab程序怎么优化
m=1;
A=[0 3 5.5 7.5 9 10 10];
B=[0 3 6 8 9.5 10.5 11];
C=[0 4 6.5 8.5 9 9 9];
D=[0 3.5 6 7.5 8.5 9 9];
for i=1:7
for j=1:7
for k=1:7
for l=1:7
if i+j+k+l==10
d(m)=A(i)+B(j)+C(k)+D(l);
E(m,1)=i;
E(m,2)=j;
E(m,3)=k;
E(m,4)=l;
m=m+1;
end
end
end
end
end

这段matlab程序怎么优化m=1;A=[0 3 5.5 7.5 9 10 10];B=[0 3 6 8 9.5 10.5 11];C=[0 4 6.5 8.5 9 9 9];D=[0 3.5 6 7.5 8.5 9 9];for i=1:7for j=1:7for k=1:7for l=1:7if i+j+k+l==10d(m)=A(i)+B(j)+C(k)+D(l);E(m,1)=i;E(m,2)=j;E(m,3)=k;E(m,4)=l;m=m+1;enden

你的E和d在循环中,其长度不断变化,所以应该先给E和d预分配内存.

对于四个for,我暂时没想到向量化的方法.但至少你可以改成这样

for i=1:7
     for j=1:8-i
           for k=1:9-i-j
              l = 10 -i -j;