2013-07-27 69 views
0

嗨我正在嘗試繪製圖像。如何使用座標和灰度矩陣矩陣繪製圖像

我有三個矩陣:

基質A:X座標

矩陣B:Y座標

矩陣C:圖像灰度

X,Y座標可是整數,小數點還是NaN。 如果任何矩陣點是NaN,我不會畫那個點。

例如:

A = [1, 1;  B = [1, 2;  C = [1, 2; 
    2, 2;   1, 2;   3, 4; 
    NaN,3 ]   4, 4 ]   5, NaN] 

我會在X(1)Y(1)情節與C(1)值的點。值1以(1,1)值2畫出在(1,2)值3描繪在(2,1)值4繪製被繪製在(2,2)

然而,B(3,1)C(3,1)不使用,因爲A(3,1)爲NaN。另外,因爲C(3,2)NaN,所以不使用A(3,2)B(3,2)

任何建議或幫助實現此功能?..我感謝任何意見或建議。謝謝。

回答

3
% filter out the data with NaN's 
idx_filter = ~(isnan(A)|isnan(B)|isnan(C)); 

% create a color map 
cmap = gray(256); 

% plot using scatter (36 is default size) 
scatter(A(idx_filter),B(idx_filter),36,cmap(C(idx_filter),:)) 

顏色現在仍然看起來有點黑,因爲您只使用整個1-256範圍的一小部分。

+0

不錯,打我幾秒鐘。你實際上不需要這些矢量,我認爲'isnan'在矩陣上工作的很好。 – Schorsch

+0

是的,因爲邏輯索引,它會自動將所有內容轉換爲向量。我會拋出它 –

+0

嗨我試過你的代碼,我得到一個錯誤'下標索引必須是真正的正整數或邏輯。'爲最後一行。任何想法可能會造成這種情況?是因爲我對A和B有負值嗎?或者我的C值是0〜1之間的值。也許我應該改變這個整數以某種方式...試圖谷歌改變我的0〜1的比例爲0〜256 –