2013-12-11 55 views
-1

工作會有人好心告訴我爲什麼於imagesc沒有做什麼,我希望它:無法獲得於imagesc在Matlab

我想獲得字符的網格出像:

http://wetans.net/word-search-worksheets-for-kids

下面是代碼:

A = [5,16,18,4,9; 
    9,10,14,3,18; 
    2,7,9,11,21; 
    3,7,2,19,22; 
    4,9,10,13,8] 

AAsChars = char(A + 96); 

imagesc(AAsChars); 
+0

這可能是很好的知道,你也可以直接使用字符來定義矩陣:'M = [「E」 'x''a''m']; ['p''l''e''s']]' –

回答

1

簡短的回答是 - 你使用了錯誤的功能你的工作。 imagesc將採取值的地圖,並將其轉換爲強度 - 每個值一個像素。你想讓它神奇地取一個字符值並把它轉換成這個字符的表示(很多像素),而不考慮字體等。

您可能想要創建一個空白背景,然後將文本字符放在您想要的位置。像(未測試):

figure 
imagesc(ones(5,5)) 
axis off 
for t = 1:5 
    for k = 1:5 
    text(t, k, sprintf('%c', A(t,k) + 96)) 
    end 
end 

這應該把字符串(字符)放在位置(我,j)。試驗一下 - 不確定我有text()的語法和字符串格式(帶有「%c」)的權利,現在無法檢查。

+0

修復了代碼。 –

+0

非常感謝。有沒有辦法去除綠色,並在灰色背景中製作黑色字母? – user3071257

+0

@DennisJaheruddin謝謝 - 我早上寫C,沒有Matlab環境可用。至於綠色等 - 你可以使你的顏色映射任何你想要的('colormap grey'應該得到你想要的背景顏色),你可以通過添加','Color',[ 0 [0 0]'(黑色)到'text'命令的末尾。見http://www.mathworks.com/help/matlab/ref/colorspec.html – Floris

0

我想你是過於複雜,這應該只是做的伎倆:

char(A + 96)