这是在用matlab做光学衍射模拟的时候衍生出的一个问题
clear all;
f = 'x^2+y^2+m^2+n^2'
M = 10;
N = 10;
A = zeros(M,N);
for m = 1:M
for n = 1:N
ftmp = f;
ftmp = subs(ftmp,'m',num2str(m));
ftmp = subs(ftmp,'n',num2str(n));
f1 = @(x,y) eval(ftmp);
A(m,n) = dblquad(f1,0,1,0,1)
end
end
或者
clear all;
sum = 0;
f2 = 'x^2+y^2+m^2+n^2'
for n = 1:10
f = f2;
f = subs(f,'n',num2str(n));
f1 = @(x,y,m) eval(f);
sum = sum + triplequad(f1,0,1,0,1,0,1)
end