这段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/11/29 07:39:06
这段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;