Ответ 1
Ваши данные не теряют точность, дисплей Data Cursor просто не показывает полную точность, так что текстовые поля являются более разумным. Однако, если вы хотите увеличить точность отображения в текстовом datatip, вы можете настроить его.
Если вы щелкните правой кнопкой мыши текстовое поле Data Cursor, вы увидите следующее меню:
Если затем выбрать параметр Изменить функцию текстового обновления..., он откроет файл m по умолчанию, содержащий следующее:
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
Обратите внимание, что текст для данных координат X и Y отформатирован с использованием NUM2STR, а второй аргумент - 4
. Это преобразует значение координаты в строковое представление с точностью до 4 цифр. Если вы хотите отобразить больше цифр, просто увеличьте это число, а затем сохраните вновь созданный m файл на path.
Теперь ваш текст datatip должен показывать больше точности для ваших номеров. Если вы хотите выполнить все вышеперечисленное программное обеспечение, сначала создайте функцию текстового обновления, сохраните ее в файле (например, 'updateFcn.m'
), затем включите Data Cursors, используя функцию 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