Как рисовать разнесенные линии сетки в Matlab


На mathworks я нашел код, который предположительно рисует линии сетки на графике:

g_x = -25:1.25:0;
g_y = -35:2.5:-5;
for i = 1:length(g_x)
    plot([g_x(i) g_x(i)],[g_y(1) g_y(end)],'k:')% y grid lines
    hold on
end
for i=1:length(g_y)
    plot([g_x(1) g_x(end)],[g_y(i) g_y(i)],'k:') % x grid lines
    hold on    
end

Вот ССЫЛКА

Я не понимаю команды построения графика: например, линии сетки y-один из входных сигналов-это вектор, содержащий все точки интервала оси x, где я хочу иметь сетку. Эти точки даны в двух столбцах и назначены второму вектору, который содержит только первую и последнюю точки, показанные на оси Y. Как я понимаю эта команда, например, он возьмет первый элемент g_x(1) и g_y(1) и построит a : , затем он возьмет g_x(2) и g_y (1) и построит :, и так далее. Но как он продолжает строить график: от g_y(1) непрерывно до g-y (конец)?

2 2

2 ответа:

Чтобы непосредственно ответить на ваш вопрос, он просто строит две конечные точки каждой линии сетки, и поскольку по умолчанию LineStyle используется plot сплошной линией, они будут автоматически соединены. Этот код создает все перестановки конечных точек и выводит их на график, чтобы сформировать сетку.

Вместо того, чтобы создавать собственные объекты печати (если вы используете R2015b или более позднюю версию), вы можете просто использовать второстепенные линии сетки и изменять расположение второстепенных делений axes.

g_x = -25:1.25:0;
g_y = -35:2.5:-5;

ax = axes('xlim', [-25 0], 'ylim', [-35 -5]);

% Turn on the minor grid lines
grid(ax, 'minor')

% Modify the location of the x and y minor tick marks
ax.XAxis.MinorTickValues = g_x;
ax.YAxis.MinorTickValues = g_y;

Введите описание изображения здесь

В основном код делает это:

g_x = -25:1.25:0;

Генерирует массив со значениями -25.0000 -23.7500 -22.5000 -21.2500 ... 0 Это позиции, в которых проводятся вертикальные линии

То же самое справедливо и для g_y, но, конечно, это определяет, где проводятся горизонтальные линии. Опция 'k' определяет, что это пунктирная линия.

И петли просто Лоо через массивы. Таким образом, в первой итерации функция построения графика рисует линию из позиции

[-25, -35]

На позицию

[-25, -5]

Итак, если вы хотите чтобы изменить сетку, просто измените значения, хранящиеся в g_x

g_x = -25:3.0:0;

Будет, например, рисовать вертикальные линии шириной 3.0 Я надеюсь, что это имеет смысл для вас.