#matlab #plot
#matlab #построить
Вопрос:
Я хочу построить график внутри for
цикла. Я попробовал следующий код, который также использовался hold on
, но график по-прежнему пуст. Я не знаю, где я ошибаюсь.
M2 = true(21, 6);
M2(1:2, 3:5) = false;
R = [0.5:0.1:2.5];
H=[0:5:25];
m=21,
n=6,
for i=1:m
for j=1:n
if M(i,j)==0
plot(H(i),R(j), 'color', 'r')
drawnow();
end
end
end
Комментарии:
1. попробуйте
plot(H(i),R(j), 'r.')
. Вы строите отдельные точки. Постройте ожидаемые строки. Если вы не скажете ему, что это точка для рисования (точка после красной), он попытается нарисовать линию, но линия с 1 точкой невидима
Ответ №1:
Как уже сказал Андер Бигури, plot
функция фактически ничего не рисует, когда вы указываете только одну точку и не указываете никаких маркеров.
Но, если вы хотите создать какой-то анимированный сюжет, одновременно отображается одна из точек:
h = scatter(0, 0, 'r');
xlim([min(H) max(H)]);
ylim([min(R) max(R)]);
for i=1:m
for j=1:n
if M(i,j)==0
set(h, 'xdata', H(i), 'ydata', R(j));
pause(0.5);
drawnow();
end
end
end
Или, если вы хотите показать все точки вместе, вам даже не нужен цикл:
[HH, RR] = meshgrid(H, R);
scatter(HH(~M), RR(~M), 'r');
xlim([min(H) max(H)]);
ylim([min(R) max(R)]);