У меня есть фигура surf
, отображающая двумерную функцию. У меня есть цикл, который изменяет значения z
в каждой точке [x,y]
в матрице meshgrid
, чтобы оживить мой график:
p = surf(x, y, z)
frames = 10/1000
for t = 0:frames:10
newZ = updateZVal(someArgs)
set(p, 'ZData', newZ)
Это отлично работает по большей части. Однако карта цветов не обновляется. По сути, текстура цветовой карты исходной матрицы z
просто остается там. Плоскость x
-y
перемещается вверх и вниз при изменении newZ
, а цвет - нет.
Этот точный код работает в Matlab и отлично работает в Octave, за исключением этой проблемы с цветом.
Изменить: минимальный рабочий пример. Маленькая движущаяся штука типа Гаусса. Вы можете видеть, что цвет не обновляется
figure();
x_range = [-2:0.2:2];
y_range = [-2:0.2:2];
[x,y] = meshgrid(x_range, y_range);
frames = 500;
z = (x) .* y;
p = surf(x, y, z);
for t = [0:2/frames:2]
z = exp(-((((x-t).^2)/2) + (((y-t).^2)/2)));
set(p, 'ZData', z);
drawnow;
end
for t = 0:1000:10
? - person NKN   schedule 27.08.2016t
в диапазоне от0
до10
с1000
шагами - person pretzlstyle   schedule 27.08.2016-2
и шла от края до края! \о/ - person Tasos Papastylianou   schedule 27.08.2016t = 0:1000:10
дает что-то еще, кроме 0 в Matlab? - person Andy   schedule 27.08.2016