У меня есть сетка, которая x=np.linspace(-1,1,n); y=x
.Я выполняю некоторые вычисления для каждого x
и y
с помощью петли for
for a,b in enumerate(x):
for c,d in enumrate(y):
functionstuff(x,y)
. Чтобы сэкономить время, мне нужно выполнять вычисления только для алмаза в пределах диагоналей, определенных между точками (-1,0)-(0,1)-(1,0)-(0,-1)
.Поэтому я пытаюсь понять, как лучше всего это сделать.Таким образом, для данного x
я хочу перейти от +(1-|x|)
к -(1-|x|)
.
Так как же мне поступить с регулировкой размера шага между меньшими y
с (чтобы я не делал x = -1
, y = 0
n
раз).
Таким образом, я могу сделать объект numpy.array
для зацикливания:
for ii,x1 in enumerate(x1):
y = np.linspace(1-np.abs(x1),-(1-np.abs(x1)),2*round((1-np.abs(x1))/dy) + 1)
for jj,y1 in enumerate(y):
f[ii][jj] = DoStuff(x1,y1)
xplot[ii][jj] = x1
yplot[ii][jj] = y1
Когда я хочу посмотреть на plot_surface(xplot,yplot,f)
, я просто получаю линию вдоль диагонали (я предполагаю, что мне нужно было определитьxplot
и yplot
как нулевой массив перед циклом)