Matlab中的相对Markersize图

jan*_*ver 6 matlab plot

我试图绘制一个矩阵,其中每个元素处于两种状态中的一种.(正在模特......)

现在,我希望有一个状态为彩色,另一个为白色.这有用

[i,j] = find(S);
figure(gcf);
plothandle = scatter(i,j);
axis([0 nNodes+1 0 nNodes+1]);
Run Code Online (Sandbox Code Playgroud)

当S保持Spins并且一个状态等于0.(find返回仅包含非零元素的矩阵)

要获得有用的绘图,标记的大小在RELATIVE坐标中应为1x1.因此,如果整个矩阵S处于非零状态,则一切都将被着色.

但是,似乎Matlab只允许以磅或英寸为单位的MarkerSizes.我该怎么解决这个问题?

我的一个想法是,我找到了轴的点大小,然后可以很容易地计算我的标记应该有多大.然后我必须创建一个回调函数,如果我想放大等等.此外,我还没有找到一种方法(没有图像acq.工具箱)来找出我的轴的绝对大小.

澄清我想要的东西:我如何使用矩阵绘制棋盘,其中1表示黑色,0表示白色字段?

gno*_*ice 3

对于显示此类数据,我通常更喜欢IMAGEIMAGESC而不是PCOLOR,因为在使用多面着色(默认)时, PCOLOR不会显示矩阵的最后一行和最后一列。此外,IMAGEIMAGEESC会翻转 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)
Run Code Online (Sandbox Code Playgroud)

这是一个示例图像:

在此输入图像描述