poster
2019-12-10, 20:48
我有这个算法,但是我不太热衷于许多if语句。
有人可以看到是否可以更简洁的方式编写此函数吗?
rand('twister',101) n = 10; f = A.^(0:n)./factorial(0:n); f = f/sum(f); n = 10000; Xi = 2; X = zeros(1,n); for i =1:n, dXi = (-1)^round(rand); Yi = Xi + dXi; if Yi > 0 & Yi = f(Xi), X(i) = Yi; Xi = Yi; else if rand
有人可以看到是否可以更简洁的方式编写此函数吗?
rand('twister',101) n = 10; f = A.^(0:n)./factorial(0:n); f = f/sum(f); n = 10000; Xi = 2; X = zeros(1,n); for i =1:n, dXi = (-1)^round(rand); Yi = Xi + dXi; if Yi > 0 & Yi = f(Xi), X(i) = Yi; Xi = Yi; else if rand