matlab 多重嵌套for循环代码简化

利用matlab画论文所需要的图像
公式涉及到很多求和,运行时间随截断数cutoff增大变的非常慢,但是如果cutoff小近似效果又不好,如何加快运行速度
clear all
tic
tau=1; %x/v
Omega=4pi/tau; %原子跃迁频率
Gamma=0.25
pi/tau; %耗散率
t = 24; %时间
%sj = Omega*t/2/pi; %时间(横坐标变为omegat/2pi)
tstep = 5; %时间每变化1所取的步数
deltat = 1/tstep; %δt=0.01
tlist = 0:deltat:t; %时间数组(0,sj)以δt为步长

beta = zeros(size(tlist)); %创建与时间数组等长的全零数组
beta(1) = 1; %初态处于激发态
cutoff = 35;

for j=1:length(tlist)
tlist(j)=(j-1)*deltat;
time = tlist(j);
n1=zeros(1,cutoff+1);
for n=0:cutoff
for m=0:n
for l=0:m
for k=0:l
for p=0:k
for q=0:p
for r=0:q
a = nchoosek(n,m)*nchoosek(m,l)*nchoosek(l,k)*nchoosek(k,p)nchoosek(p,q)nchoosek(q,r);
b = 2^(q-r-n+k-p)3^(n-m+p-q)4^(m-l)/gamma(n+1);
if time>tau
(m+l+k+p+q+r)
c = (time-tau
(m+l+k+p+q+r))^n;
else
c = 0;
end
n1(n+1)=n1(n+1)+a
b
c;
end
end
end
end
end
end
n
end
sumn=sum(n1)
beta(j)=sumn;
j
end

toc
figure
hold on
plot(tlist,abs(beta).^2);

题主你的代码有些不完整,都不知道是乘还是除,能否放完整一下;
题主你的代码中只给出了初始的tau,下面这个代码又调用索引值,你是否有东西没写完:

tau(m+l+k+p+q+r)

从n到q数据有规律,改成公式就行,下面循环免了