帮你搜索到一个好的:
function [data]=SquareDiamond(N,initvalue)
%输入N为:方阵的维数2^N+1,在方阵的四个角的顶点上放置的初值,
%这里定为四个初值一样
% Example:
% tic;
% d=SquareDiamond(8,5);
% colormap(gray); %设置渲染的颜色
% surf(d); %画出三维曲面
% shading flat; %各小曲面之间不要网格
% toc %测试运行时间
n=2^N;
data=zeros(n+1);
data(1,1)=initvalue;
data(1,n+1)=initvalue;
data(n+1,1)=initvalue;
data(n+1,n+1)=initvalue;
data=mytry(data,n,0.3,n);
function [x]=rnd(absvalue)
%扩展的随机函数生成器,产生绝对值小于absvalue的随机实数
x=(rand(1)-0.5)*2*absvalue;
function [data]=mytry(data,m,r,n)
%square
%----x--
%-----
%x- 0 -x 由四个x定中间的0
%--------
%----x---
%钻石步骤的横向部分
%line No.1
for j=1+m/2:m:n