MatLab мультик из графиков

shen

Есть 2д-массив точек, задающих значения функции одной пространственной переменной и времени.
Как изобразить бегущую волну на основе этого массива?

stm2383383

один график рисуешь, второй удаляешь. Делаешь это с определенным шагом во времени.

Boris

считаем, что данные в массиве A, каждая строчка соответствует фиксированному моменту времени
Если надо мультик просто посмотреть, то так:

for i_t = 1:size(A,1)
plot(A(i_t,
drawnow
pause(0.01) % пауза между кадрами
end

если надо мультик сохранить в файл, то читаем хелп для функций avifile, getframe, movie2avi
там есть примеры, делаем по образцу.

makei

о, если уж на то пошло, то задам и свой вопрос:
Есть два массива: А - grayscale image (элементы массива могут иметь значения от 0 до 255) и B - логический массив того же размера (маска). Так вот как отобразить эту маску поверх изображения допустим красным цветом? (то есть чтобы пиксели grayscale изображения, в тех местах, где в логическом массиве 1, были красными)

Boris

Все одинаково красные или цвет должен определяться значением в грейскейл?

makei

Все одинаково красные, вне зависимости от того, что на изображении.
p.s. И конечно, нужно обойтись без конвертирования грейскейл в rgb, изображение может быть очень большим.

Boris

p.s. И конечно, нужно обойтись без конвертирования грейскейл в rgb, изображение может быть очень большим.
с этого надо было начинать =)

Boris

тогда могу предложить такой хак:

image(A,'AlphaData',~B); colormap(gray(256
set(gca,'Color','red')

makei

хм, идею понял) круто!
Оставить комментарий
Имя или ник:
Комментарий: