1 / 19

Форматы числовых данных

Форматы числовых данных. Задается с помощью команды или функции format Имеются следующие аргументы: short - четыре знака после запятой. long – 15 знаков для double и семь знаков для single Другие аргументы shortG , longG – наиболее удобочитаемый формат числа.

dai
Download Presentation

Форматы числовых данных

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Форматы числовых данных • Задается с помощью команды или функции format • Имеются следующие аргументы: • short - четыре знака после запятой. • long – 15 знаков для double и семь знаков для single • Другие аргументы • shortG, longG– наиболее удобочитаемый формат числа

  2. Результат выполнения разных форматов

  3. Пакет Financial Toolbox • Основной экономический пакет MatLab. • В этом разделе рассматриваются приемы использования средств FinancialToolbox для решения модельных задач предметной области. Вопросы, связанные с адекватностью моделей, условий их применимости или справедливости гипотез относительно состояния финансовых рынков и аналогичные вопросы выходят за рамки данного раздела. Более того, применение средств пакета в некоторых случаях может приводить к неверным результатам с точки зрения бизнес-приложений. Проблема анализа полученных данных и их дальнейшего применения лежит на пользователе пакета и требует дополнительного экономического образования. • Дополнительные пакеты: Financial Derivative Toolbox, Fixed-Income Toolbox

  4. Работа с датами • MatLabпредставляет даты в своем внутреннем представлении. • Для получения данного представления следует воспользоваться командой now. • Результат вывода такой команды: десятичное число: • Целая часть – номер дня после 01 января 0000 г. (от р. Х.) • Дробная часть – время, отсчитанное от полуночи текущего дня.

  5. Обращение к now >> format longG >> now ans = 734804.871996979 Таким образом в момент создания слайда был 734804 день и 0.871996979 часть 24 часов.

  6. Человеческое представление датТекстовый формат • Представление даты в виде строчки. Строчка может иметь различные представления: • год-месяц-число • год-месяц-число часы-минуты-секунды • квартал-год • и другие • Функция для получения текстового предствления datestr(inner_format, type) • inner_format – внутреннее представление • type – тип представления

  7. >> n=now; >> datestr(n, 0) ans = 28-Oct-2011 21:25:52 >> datestr(n, 1) ans = 28-Oct-2011 >> datestr(n, 2) ans = 10/28/11 >> datestr(n, 17) ans = Q4-11 >> datestr(n, 18) ans = Q4 >> datestr(n, 5) ans = 10 >> datestr(n, 6) ans = 10/28 >> datestr(n, 7) ans = 28 >> datestr(n, 8) ans = Fri >> datestr(n, 9) ans = F >> datestr(n, 10) ans = 2011 >> datestr(n, 11) ans = 11 >> datestr(n, 12) ans = Oct11 >> datestr(n, 13) ans = 21:25:52 >> datestr(n, 14) ans = 9:25:52 PM

  8. Человеческое представление датЧисловой формат • Для получения числовой (или векторной) записи даты используется функция datavec: • Vector_format=datavec(inner_format{/ text_format}) • [yyyy, mmm, dd, hh, mm, ss]=datavec(……) • В первом случае результат будет записан в массив Vector_formatразмерности 6 • Во втором случае результат будет записан в указанные переменные. • Не все текстовые форматы можно привести к числовому.

  9. >> n=now; >> str=datestr(n, 0) str = 28-Oct-2011 21:42:40 >> vec=datevec(n) vec = Columns 1 through 3 2011 10 28 Columns 4 through 6 21 42 40.9400024414063 >> vec=datevec(str) vec = 2011 10 28 21 42 40 >> str=datestr(n, 5) str = 10 >> vec=datevec(str) ??? Error using ==> datevec at 280 Cannot parse date 10. >> str=datestr(n, 2) str = 10/28/11 >> vec=datevec(str) vec = 2011 10 28 0 0 0 >> str=datestr(n, 17) str = Q4-11 >> vec=datevec(str) ??? Error using ==> datevec at 216 Failed to lookup month of year.

  10. >> n=now; >> [year, month, day, hour, minute, second]=datevec(n) year = 2011 month = 10 day = 28 hour = 21 minute = 47 second = 12.0139999389648 >> str=datestr(n, 1) str = 28-Oct-2011 >> [year, month, day, hour, minute, second]=datevec(str) year = 2011 month = 10 day = 28 hour = 0 minute = 0 second = 0

  11. Вычисление интервалов между датами • В MatLab интервалы между датами вычисляются с помощью функции number_of_days=daysdif(start, final, basis) • start – начальная дата • final – конечная дата • basis – базовый период

  12. Базовый период расчета интервала между датами • Количество дней, попадающих между двумя датами зависит от календаря. Базовый период и представляет такие календари. • basis=0 – дней в году фактическое (365 или 366), дней в месяце фактическое (28, 29, 30 или 31) • basis=1 – дней в году 360, дней в месяце 30 • basis=2 – дней в году 360, дней в месяце фактическое • basis=3 – дней в году 365, дней в месяце фактическое • Всего имеется 13 различных вариантов

  13. >> str1=datestr(n, 1) str1 = 28-Oct-2011 >> str2='28-Apr-2011'; >> datenum(str2) ans = 734621 >> number=daysdif(str1, str2, 0) number = -183 >> number=daysdif(str2, str1, 0) number = 183 >> number=daysdif(str2, str1, 1) number = 180 >> str2='01-Jan-2010'; >> str1='01-Jan-2011'; >> number=daysdif(str2, str1, 2) number = 365 >> number=daysdif(str2, str1, 3) number = 365

  14. Выходные дни В файл-функцииholidays.mопределены нерабочие дни с 01 января 1885 года до 31 декабря 2030 года для Нью-Йоркской фондовой биржи.

  15. Элемент листинга holidays.m 734520 ; ... % 17-Jan-2011 Martin Luther King, Jr. Day (Mon) 734555 ; ... % 21-Feb-2011 Washington's Birthday (Mon) 734615 ; ... % 22-Apr-2011 Good Friday (Fri) 734653 ; ... % 30-May-2011 Memorial Day (Mon) 734688 ; ... % 04-Jul-2011 Independence Day (Mon) 734751 ; ... % 05-Sep-2011 Labor Day (Mon) 734831 ; ... % 24-Nov-2011 Thanksgiving (Thu) 734863 ; ... % 26-Dec-2011 Monday after Christmas (Mon) 734870 ; ... % 02-Jan-2012 Monday after New Year's Day (Mon) 734884 ; ... % 16-Jan-2012 Martin Luther King, Jr. Day (Mon)

  16. Вычисление рабочих дней • Вычислив праздники, можно посчитать их количество. • После этого можно воспользоваться функцией wrkdydif(start, final, holiday) для вычисления рабочих дней между двумя датами start и final.

  17. >> str1='28-Oct-2011'; • >> str2='20-Jan-2012'; • >> number=daysdif(str1, str2) • number = • 84 • >> hd=holidays(str1, str2) • hd = • 734831 • 734863 • 734870 • 734884 • >> hd=datestr(holidays(str1, str2)) • hd = • 24-Nov-2011 • 26-Dec-2011 • 02-Jan-2012 • 16-Jan-2012 • >> n=length(hd) • n = • 11 • >> wd=wrkdydif(str1, str2, n) • wd = • 50 • >> hd=holidays(str1, str2) • hd = • 734831 • 734863 • 734870 • 734884 • >> n=length(hd) • n = • 4 • >> wd=wrkdydif(str1, str2, n) • wd = • 57

  18. Последний день в месяце • MatLab позволяет вычислить дату последнего в месяце дня недели. • Для этого используется команда lweekdate(weekday, year, month) • weekday – день, который ищется. Задается целым числом от 1 до 7, начиная с воскресенья и заканчивая субботой. • year –четырех-значное целое число • month – целое число от 1 до 12

  19. >> year=2011; >> month=10; >> day=4; >> date=lweekdate(day, year, month) date = 734802 >> datestr(date) ans = 26-Oct-2011 >> year=[2011, 2012, 2013]; >> date=lweekdate(day, year, month) date = 734802 735173 735537 >> datestr(date) ans = 26-Oct-2011 31-Oct-2012 30-Oct-2013

More Related