这段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/07/19 01:29:05
![这段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](/uploads/image/z/810836-44-6.jpg?t=%E8%BF%99%E6%AE%B5matlab%E7%A8%8B%E5%BA%8F%E6%80%8E%E4%B9%88%E4%BC%98%E5%8C%96m%3D1%3BA%3D%5B0+3+5.5+7.5+9+10+10%5D%3BB%3D%5B0+3+6+8+9.5+10.5+11%5D%3BC%3D%5B0+4+6.5+8.5+9+9+9%5D%3BD%3D%5B0+3.5+6+7.5+8.5+9+9%5D%3Bfor+i%3D1%3A7for+j%3D1%3A7for+k%3D1%3A7for+l%3D1%3A7if+i%2Bj%2Bk%2Bl%3D%3D10d%28m%29%3DA%28i%29%2BB%28j%29%2BC%28k%29%2BD%28l%29%3BE%28m%2C1%29%3Di%3BE%28m%2C2%29%3Dj%3BE%28m%2C3%29%3Dk%3BE%28m%2C4%29%3Dl%3Bm%3Dm%2B1%3Benden)
这段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;