#matlab #plot
#matlab #график
Вопрос:
Я пытаюсь построить матрицу, в которой каждый элемент находится в одном из двух состояний. (модель ising ..)
Теперь я хотел бы, чтобы одно состояние было цветным, а другое — белым. Это работает с использованием
[i,j] = find(S);
figure(gcf);
plothandle = scatter(i,j);
axis([0 nNodes 1 0 nNodes 1]);
когда S содержит вращения и одно состояние равно 0. (find возвращает матрицу только из ненулевых элементов)
Чтобы иметь полезный график, размеры маркеров должны быть 1×1 в ОТНОСИТЕЛЬНЫХ координатах. Итак, если бы вся матрица S находилась в ненулевом состоянии, все было бы окрашено.
Однако, похоже, что Matlab допускает маркировку только в точках или дюймах. Как я мог это решить?
Одна из моих идей заключалась в том, что я выясняю размер точек осей, а затем могу легко рассчитать, насколько большими должны быть мои маркеры. Тогда мне пришлось бы создать функцию обратного вызова, если я хочу увеличить масштаб и так далее. Кроме того, я еще не нашел способ (без изображения acq. набор инструментов), чтобы узнать абсолютный размер моих осей.
Чтобы уточнить, чего я хочу: как я мог бы построить шахматную доску, используя матрицу с 1 для черных и 0 для белых полей?
Ответ №1:
Для отображения данных такого рода я обычно предпочитаю IMAGE или IMAGESC PCOLOR, поскольку PCOLOR не отображает последнюю строку и столбец матрицы при использовании фасетного затенения (по умолчанию). Кроме того, IMAGE и IMAGESC переворачивают ось y, чтобы изображение более интуитивно соответствовало тому, о чем вы думаете при просмотре матрицы (т. Е. строки начинаются с 1 вверху). Вы можете визуализировать свою матрицу следующим образом:
S = round(rand(20)); %# Sample 20-by-20 matrix of ones and zeroes
imagesc(S); %# Plot the image
colormap([1 1 1; 0 0 0]); %# Set the colormap to show white (zero elements) and
%# black (non-zero elements)
И вот пример изображения:
Ответ №2:
Просто в качестве предложения вы можете попробовать использовать pcolor
вместо примера `scatter’:
pcolor(hadamard(20))
colormap(gray(2))
axis ij
axis square