下面显示的代码用于绘制Mandelbrot集,我认为我的代码有点冗余来构建Matrix M.在Python中,我知道有一个干净的方法,
M = [[mandel(complex(r, i)) for r in np.arange(-2, 0.5,0.005) ] for i in np.range(-1,1,0.005)]
在Matlab中有类似的方法吗?
function M=mandelPerf()
rr=-2:0.005:0.5;
ii=-1:0.005:1;
M = zeros(length(ii), length(rr));
id1 = 1;
for i =ii
id2 = 1;
for r = rr
M(id1, id2) = mandel(complex(r,i));
id2 = id2 + 1;
end
id1 = id1 + 1;
end
end
function n = mandel(z)
n = 0;
c = z;
for n=0:100
if abs(z)>2
break
end
z = z^2+c; …Run Code Online (Sandbox Code Playgroud) 以下是我的代码:
function sierpinski(A, B, C, n)
if n == 0
patch([A(1), B(1), C(1)], [A(2), B(2), C(2)], [0.0 0.0 0.0]);
else
sierpinski(A, (A + B)/2, (A + C)/2, n-1);
sierpinski(B, (B + A)/2, (B + C)/2, n-1);
sierpinski(C, (C + A)/2, (C + B)/2, n-1);
end
% sierpinski([0 0], [1 0], [.5 .8], 8)
Run Code Online (Sandbox Code Playgroud)
这不是很有效.我想首先生成所有数据然后打补丁,但我不知道如何正确使用.另外,我的代码可以用于循环吗?
我知道它们都可以编程.他们是严格地说编程语言还是图灵完成?
例如:
A=[1,[2,3],[4,[5,6]],7]
B=[2,3,4,5,6,7,8]
Run Code Online (Sandbox Code Playgroud)
我该怎么[2,[3,4],[5,[6,7]],8]办?