2011-06-08 16 views
6

我想繪製一個矩陣,其中每個元素都處於兩種狀態之一。 (是模型..)Matlab中的相對標記圖

現在,我想有一個國家有色和另一個白色。這適用於使用

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

在S保持自旋和一個狀態等於0(找到僅返回非零元素的矩陣)

爲了有一個有用的曲線圖中,標記的尺寸在RELATIVE座標中應該是1x1。因此,如果整個矩陣S將處於非零狀態,則所有內容都將被着色。

但是,似乎Matlab只允許以磅或英寸爲單位的MarkerSizes。我怎麼能解決這個問題?

我的一個想法是,我發現了軸的點大小,然後可以輕鬆計算出我的標記應該有多大。然後,我將不得不創建一個回調函數,如果我想放大等。此外,我還沒有找到一種方法(沒有圖像acq。工具箱)找出我的軸的絕對大小。

爲了澄清我想要的東西:我怎麼能用一個黑色的0和白色的0的矩陣來繪製一個棋盤?

回答

3

對於這種我一般喜歡IMAGEIMAGESCPCOLOR因爲PCOLOR將不顯示上次的顯示數據當使用分面着色(默認)時矩陣的行和列。此外,IMAGEIMAGESC翻轉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) 

而這裏的樣本圖像:

enter image description here

1

正如一個建議,你可以嘗試使用pcolor而不是'散」例子:

pcolor(hadamard(20)) 
colormap(gray(2)) 
axis ij 
axis square