मैं MATLAB का उपयोग कर डबल परिशुद्धता मैट्रिक्स से इस तरह की छवियां बनाना चाहता हूं।मैं रंग और मूल्यों के साथ एक मैट्रिक्स को कैसे प्रदर्शित करूं?
नमूना छवि:
मैं MATLAB का उपयोग कर डबल परिशुद्धता मैट्रिक्स से इस तरह की छवियां बनाना चाहता हूं।मैं रंग और मूल्यों के साथ एक मैट्रिक्स को कैसे प्रदर्शित करूं?
नमूना छवि:
आप अपने आप को साजिश बहुत आसानी से उपयोग करते हुए इस तरह की बना सकते हैं में निर्मित फ़ंक्शन imagesc
और text
और ग्राफिक्स ऑब्जेक्ट्स के लिए कई पैरामीटर समायोजित करना।
mat = rand(5); %# A 5-by-5 matrix of random values from 0 to 1
imagesc(mat); %# Create a colored plot of the matrix values
colormap(flipud(gray)); %# Change the colormap to gray (so higher values are
%# black and lower values are white)
textStrings = num2str(mat(:),'%0.2f'); %# Create strings from the matrix values
textStrings = strtrim(cellstr(textStrings)); %# Remove any space padding
[x,y] = meshgrid(1:5); %# Create x and y coordinates for the strings
hStrings = text(x(:),y(:),textStrings(:),... %# Plot the strings
'HorizontalAlignment','center');
midValue = mean(get(gca,'CLim')); %# Get the middle value of the color range
textColors = repmat(mat(:) > midValue,1,3); %# Choose white or black for the
%# text color of the strings so
%# they can be easily seen over
%# the background color
set(hStrings,{'Color'},num2cell(textColors,2)); %# Change the text colors
set(gca,'XTick',1:5,... %# Change the axes tick marks
'XTickLabel',{'A','B','C','D','E'},... %# and tick labels
'YTick',1:5,...
'YTickLabel',{'A','B','C','D','E'},...
'TickLength',[0 0]);
यहाँ है आंकड़ा इस उत्पन्न करता है और::
आप X- अक्ष टिक लेबल आप भी चौड़ा और अतिव्यापी एक-दूसरे की जा रही चयन के साथ मुसीबत में चलाते हैं, तो यहाँ है यहाँ एक उदाहरण है आप इसे कैसे संभाल कर सकते हैं: MATLAB के
नए संस्करणों: यह निश्चित नहीं है ve rsion यह जोड़ा गया था, लेकिन नए संस्करण अक्ष अक्षरों में अब properties '{एक्स | वाई | जेड} टिकलबेलरोटेशन' है, जो आपको लेबल को घुमाने और उन्हें बेहतर फिट करने की अनुमति देता है। MATLAB के
पुराने संस्करण: पुराने संस्करणों के लिए आप MathWorks File Exchange पर कुछ प्रस्तुतियाँ कि Brian Katz से टिक लेबल पाठ, XTICKLABEL_ROTATE की तरह घुमा सकते हैं पा सकते हैं।
मैं तुम्हें Matlab के लिए राजी है कि आकर्षित करने के लिए, यदि आप फ़ाइल एक्सचेंज आप पा सकते हैं किसी को पहले से ही कोड लिखा है पर दिखाई दे सकता है उम्मीद है। लेकिन अगर आपके पास एमएस एक्सेल का उपयोग करने के लिए कोड नहीं है, तो यह बहुत आसान होगा।
संपादित करें: तो मैंने इसे कुछ और विचार दिया और यहां मैं जो आया था। मैंने एसओ को ग्राफिक्स पोस्ट करने में महारत हासिल नहीं की है, इसलिए मेरा विश्वास करो, इससे आपको समाधान की ओर ले जाया जाएगा। लेकिन यह एक्सेल के साथ ईमानदारी से आसान होगा।
सबसे पहले अपने डेटा मानों के साथ एक मैट्रिक्स परिभाषित करें; मैं निम्नलिखित में मैट्रिक्स G
पर कॉल करता हूं। अब
image(G);
colormap(gray)
, मैं एक अच्छा ग्राफिक पाने के लिए कुछ लगभग नगण्य, डेटा rescaling करना है, किया था, लेकिन इस सांख्यिक कुल्हाड़ियों के साथ एक ग्रे पैमाने पर साजिश का उत्पादन करना चाहिए: तब आदेश पर अमल। अब, अपनी आकृति विंडो पर जाएं और साजिश उपकरण खोलें।
एक्स अक्ष का चयन करें और Ticks
बटन दबाएं। आपको बस इतना करना है कि लेबल को उन ग्रंथों में संपादित करें जिन्हें आप चाहते हैं। वाई अक्ष के लिए वही करें। साजिश पर वर्गों में संख्याएं लिखें - एनोटेशन मेनू से टेक्स्ट बॉक्स का उपयोग करें।
आपके बारे में बहुत कुछ झुकाव के बाद आपको इच्छित ग्राफिक होगा। इस बिंदु पर, मेरा सुझाव है कि आप मेनू कमांड फ़ाइल चुनें एम-फाइल जेनरेट करें और बस यही करें। यदि आप भविष्य में ऐसे ग्राफिक्स प्रोग्रामेटिक रूप से बनाना चाहते हैं तो जेनरेट की गई एम फ़ाइल को एक उचित फ़ंक्शन में बदल दें जो आप चाहते हैं।
लेकिन यह अभी भी Excel में बहुत आसान है।
h = imagesc(magic(8))
impixelregion(h)
http://www.mathworks.com/help/toolbox/images/ref/impixelregion.html
आवश्यक है इमेज प्रोसेसिंग उपकरण बॉक्स
+1: यह एक अद्भुत पागल दृष्टिकोण है। मुझे उम्मीद है कि ओपी यह कोशिश करता है ... –
+1: प्रदान किए गए मुकाबले ज्यादा बेहतर प्रदर्शन। –
अधिक सामान्य समाधान के लिए, आपको ग्रेस्केल कोलोमाप पृष्ठभूमि पर टेक्स्ट का रंग निर्धारित करने के लिए 'माध्य' ('gca, 'CLim') के बजाय 'औसत' (' gca, 'CLim') के विरुद्ध तुलना करना चाहिए। – Amro
@Amro: अच्छा सुझाव! मैंने इसे कोड में शामिल किया। – gnovice