2011-05-11 7 views
12

मुझे सटीक हानि के साथ समस्या है। मैं MATLAB 7 में CSV फ़ाइल से मानों का एक सेट आयातित निम्नलिखित कोड का उपयोग कर:मैं MATLAB डेटा कर्सर में उच्च परिशुद्धता वाले नंबर कैसे प्रदर्शित कर सकता हूं?

function importfile(fileToRead1) 
%#IMPORTFILE(FILETOREAD1) 
%# Imports data from the specified file 
%# FILETOREAD1: file to read 

DELIMITER = ','; 
HEADERLINES = 0; 

%# Import the file 
rawData1 = importdata(fileToRead1, DELIMITER, HEADERLINES); 

%# For some simple files (such as a CSV or JPEG files), IMPORTDATA might 
%# return a simple array. If so, generate a structure so that the output 
%# matches that from the Import Wizard. 
[~,name] = fileparts(fileToRead1); 
newData1.(genvarname(name)) = rawData1; 

%# Create new variables in the base workspace from those fields. 
vars = fieldnames(newData1); 
for i = 1:length(vars) 
    assignin('base', vars{i}, newData1.(vars{i})); 
end 

यह बहुत ही बुनियादी स्क्रिप्ट सिर्फ निर्दिष्ट फ़ाइल लेता है:

> 14,-0.15893555 
> 15,-0.24221802 
> 16,0.18478394 

और दूसरे कॉलम में कनवर्ट करता है:

14 -0,158935550000000 
15 -0,242218020000000 
16 0,184783940000000 

हालांकि, अगर मैं डाटा कर्सर यह केवल परिशुद्धता के 3 या 4 अंक प्रदर्शित करता है के साथ एक बिंदु का चयन:

imprecise labels

क्या अधिक सटीक डेटा पॉइंट प्राप्त करने के लिए उच्च परिशुद्धता प्रोग्राम करने का कोई तरीका है?

उत्तर

23

आपका डेटा परिशुद्धता खोने नहीं है, डाटा कर्सर प्रदर्शन सिर्फ पूर्ण सटीक नहीं दिखा रहा ताकि टेक्स्ट बॉक्स में एक और अधिक उचित आकार रहे हैं। हालांकि, यदि आप टेक्स्ट डेटाैटिप, you can customize it में डिस्प्ले की सटीकता को बढ़ाना चाहते हैं।

आप सही एक डाटा कर्सर पाठ बॉक्स पर क्लिक करें, तो आप इस तरह एक मेनू देखना चाहिए:,

enter image description here

आप तो संपादित पाठ अद्यतन समारोह ... विकल्प को चुनते हैं यह होगा युक्त निम्नलिखित एक डिफ़ॉल्ट एम-फ़ाइल को खोलने:

function output_txt = myfunction(obj,event_obj) 
%# Display the position of the data cursor 
%# obj   Currently not used (empty) 
%# event_obj Handle to event object 
%# output_txt Data cursor text string (string or cell array of strings). 

pos = get(event_obj,'Position'); 
output_txt = {['X: ',num2str(pos(1),4)],... 
    ['Y: ',num2str(pos(2),4)]}; 

%# If there is a Z-coordinate in the position, display it as well 
if length(pos) > 2 
    output_txt{end+1} = ['Z: ',num2str(pos(3),4)]; 
end 

सूचना NUM2STR का उपयोग कर कि एक्स और वाई डेटा समन्वय के लिए पाठ स्वरूपित है, दूसरा तर्क एक होने के साथ 4। यह समन्वय मान को सटीक के 4 अंकों के साथ एक स्ट्रिंग प्रतिनिधित्व में परिवर्तित करता है। यदि आप अधिक अंक प्रदर्शित करना चाहते हैं, तो बस इस नंबर को बढ़ाएं, फिर नव निर्मित एम-फाइल को अपने path पर सहेजें।

अब आप अपने datatip पाठ अपने नंबरों के लिए और अधिक सटीक प्रदर्शित करना चाहिए। यदि आप उपरोक्त सभी प्रोग्रामेटिक रूप से को पूरा करना चाहते हैं, तो आप पहले अपना टेक्स्ट अपडेट फ़ंक्शन बनायेंगे, इसे फ़ाइल में सहेजें (जैसे 'updateFcn.m'), फिर DATACURSORMODE फ़ंक्शन का उपयोग करके डेटा कर्सर चालू करें और उन्हें अपने उपयोगकर्ता द्वारा परिभाषित करने के लिए सेट करें पाठ अद्यतन समारोह।यहाँ एक उदाहरण है:

plot(1:10,rand(1,10)); %# Plot some sample data 
dcmObj = datacursormode; %# Turn on data cursors and return the 
          %# data cursor mode object 
set(dcmObj,'UpdateFcn',@updateFcn); %# Set the data cursor mode object update 
            %# function so it uses updateFcn.m 
+0

उत्तर के लिए धन्यवाद। तुम मुझे बहुत सारे टाइपिंग बचाओ। – Jonas

+0

महान उत्तर के लिए धन्यवाद! आवश्यक परिशुद्धता प्राप्त करने के लिए मैंने हमेशा "वर्कस्पेस पर निर्यात कर्सर" किया है। यह एक बहुत ही उपयोगी चाल है। – nibot

+0

यह एक अच्छा जवाब है, लेकिन क्या मैं अकेला हूं जो सोचता है कि यह अविश्वसनीय है (बुरे तरीके से) कि यह जवाब है? –

2

इस पर मुझे बोली मत करो, लेकिन:

1) आप नहीं खोया सटीक, MATLAB भंडार पूरा मूल्य, यह केवल प्रदर्शन है कि नीचे मुकाबले गया है।

2) MATLAB (R2009a की मेरी संस्करण में) मैं जिस तरह से लंबे समय तक नंबर आदेश मेनू में

फ़ाइल> प्राथमिकताएं जाकर दिखाया जाता है> चर संपादक

जहां एक ड्रॉपडाउन मेनू मुझे देता है संशोधित कर सकते हैं शॉर्ट, लांग, शॉर्ट ई, लांग ई, शॉर्ट जी, लांग जी, शॉर्ट इंग्लैंड, लांग एनजी, बैंक, + और चूहे के बीच चुनें।

मुझे लगता है कि प्रभावित करता है कि क्या क्या डाटा कर्सर चलता है, हालांकि पता नहीं है।

5

आप एक स्थायी परिवर्तन बनाना चाहते हैं - चेतावनी: यह MATLAB के लिए एक मामूली हैक है - खुला:

C: \ Program Files \ Matlab \ R2007b \ टूलबॉक्स \ matlab \ ग्राफिक्स \ @ ग्राफिक्स \ @ डेटासर्स \ default_getDatatipText.m

या आपके संस्करण के आधार पर एक समान फ़ाइल और DEFAULT_DIGITS को बदलें।

संबंधित मुद्दे