Установка MATLAB. Matlab не запускается, продолжает запрашивать активацию


Установка MATLAB имеет несколько хитростей, знать которые необходимо во избежание досадных ошибок, а также правильной настройки параллельного программирования.

Сам дистрибутив условно можно разделить на две части:

  • "не параллельная" часть: MATLAB , Simulink и их компоненты (Toolbox"ы...);
  • "параллельная" часть: MATLAB Distributed Computing Server + Parallel Computing Toolbox.
Получаются три варианта установки:
  1. Для настольных вычислений (только "не параллельная часть").
  2. Для параллельных вычислений в сети (только "параллельная часть").
  3. Для настольных и параллельных вычислений вместе (обе части).
Рассмотрим их более подробно.

По сути выбор между вариантами осуществляется установкой или не установкой компонента "MATLAB Distributed Computing Server". Поэтому при выборе типа установки "Typical" или "Custom" всегда выбираем "Custom":

Вариант 1. Для настольных вычислений

Этот вариант подходит для большинства пользователей. Единственная тонкость - это снять галочку "MATLAB Distributed Computing Server":


Почему так следует делать см. описание следующего варианта.
Отмечу, что параллельные вычисления можно делать, но:
  • задействовать можно только процессоры и ядра локальной машины;
  • средства параллельных вычислений ограничиваются инструкцией parfor (чего обычным пользователям хватает с лихвой).

Дополнения к варианту 1

Система MATLAB использует понятие текущего каталога при работе с М- и МАТ-файлами во время сеанса работы. Начальный текущий каталог определен в файле запуска, который ассоциирован с ярлыком запуска системы MATLAB, расположенном на рабочем столе. Щелчок правой кнопки мыши, установленной на этом ярлыке, и выбор контекстного элемента "Свойства/Properties" позволяет изменить начальный каталог, используемый по умолчанию:


Теперь при запуске MATLAB видим заданный текущий каталог:


В ранних версиях MATLAB были проблемы с поддержкой русского языка. Также были проблемы с загрузкой моделей Simulink, где названия и/или имена файлов были на русском. Как правило, такие проблемы решаются с помощью следующих команд:
set_param(0,"SavedCharacterEncoding","windows-1252"); set_param(0,"CharacterEncoding","windows-1252"); slCharacterEncoding("windows-1252"); feature("MultibyteCharSetChecking",0);
Если эти команды записать в файл с именем "startup.m" и сохранить данный файл в начальный рабочий каталог (см. выше) или в один из каталогов PATH (Меню "File" > "Set PAth..."), то записанные команды будут выполняться автоматически при каждом запуске MATLAB.

Вариант 2. Для параллельных вычислений в сети

При установке нужно установить галочку "MATLAB Distributed Computing Server", а также выбрать компоненты (Simulink, Toolbox"ы), которые необходимы в процессе параллельных вычислений.


Внимание! Режим параллельных вычислений подразумевает, что интерактивной работы с MATLAB нет и не будет.
Следствие 1. Нет иконок приложения MATLAB. Нет ассоциаций с файлами (для открытий файлов по двойному щелчку).
Следствие 2. MATLAB интерактивно запустить всё же можно. Достаточно открыть папку с установленной программой и в каталоге bin запустить matlab.exe. Но при параллельных вычислениях может возникнуть ошибка:
MATLAB_PREFDIR must be an absolute path.
Cannot set preferences directory to the relative path Mathworks\MATLAB\2012b.
В случае такой ошибки, рекомендую также посмотреть тему http://matlab.exponenta.ru/forum/viewtopic.php?t=16365 .

Если всё-таки требуется выполнять интерактивные вычисления и параллельные, то переходим к варианту 3.

Дополнения к варианту 2

Вариант 3. Для настольных и параллельных вычислений вместе

Слово вместе говорит о том, что вычисления интерактивно и параллельно могут вестись одновременно, но это не обязательно.

Основная проблема в этом варианте установке, как же установить MATLAB с MATLAB Distributed Computing Server и иметь ярлыки, ассоциации и прочие прелести настольной установки.

Я предлагаю установку проводить в два этапа:

Дополнения к варианту 3

Эти дополнения состоят из дополнений к вариантам 1 и 2.

Урок №2.

Установка системы и первые навыки работы

    Установка и файловая система MATLAB

    Запуск MATLAB и работа в режиме диалога

    Первый опыт работы

    MATLAB в роли суперкалькулятора

    Числа, константы и системные переменные

    Текстовые комментарии

    Переменные, их создание, изменение и уничтожение

    Операторы и функции

    Сообщения об ошибках и исправление ошибок

    Ведение дневника

    Завершение работы с системой

Установка и файловая система MATLAB

Новая версия системы MATLAB 6 - весьма громоздкий программный 1 комплекс, который (при полной установке) требует до 1000-1500 Мбайт дисковой памяти (в зависимости от конкретной поставки, полноты справочной системы и числа устанавливаемых пакетов прикладных программ). Поэтому он поставляются исключительно на компакт-дисках. Полный комплект системы размещается на двух компакт-дисках только для чтения (CD-ROM), на одном из которых размещены PDF-файлы документации.

Для успешной установки MATLAB необходимы следующие минимальные средства:

    Компьютер с микропроцессором не ниже Pentium и математическим сопроцессором, рекомендуются процессоры Pentium PRO, Pentium II, Pentium III, Pentium IV или AMD Athlon;

    Устройство считывания компакт дисков (привод CD-ROM) (для установки), мышь, 8-разрядный графический адаптер и монитор, поддерживающие не менее 256 цветов;

    Операционная система Windows 95/98 (оригинальная или второе издание) / Me (Millennium Edition) /2000/ (допускается также NT4 с сервис-пакетами 5 или 6а);

    ОЗУ емкостью 64 Мбайт для минимального варианта системы (рекомендуется иметь память не менее 128 Мбайт);

    До 1500 Мбайт дискового пространства при полной установке всех расширений и всех справочных систем.

Для использования расширенных возможностей системы нужны графический ускоритель, Windows-совместимые звуковая карта и принтер, текстовый процессор Microsoft Word 95/97/ 2 2000 для реализации Notebook, компиляторы языков Си/Си++ и/или ФОРТРАН для подготовки собственных файлов расширения и браузер Netscape Navigator 4.0 и выше или Microsoft Internet Explorer 4.0 и выше. Для просмотра файлов справочной системы в формате PDF нужна программа Adobe Reader или Adobe Acrobat 3.0 и выше.

    Компилятор Compaq Visual Fortran 5.0 или 6.1;

    Microsoft Visual Си/С++ версий 5.0 или 6.0;

    Borland Си/С++ версий 5.0, 5.02;

    Borland C++Builder версий 3.0, 4.0 или 5.0;

    WATCOM Си/Си++ версий 10.6 или 11 (фирмой Sybase более не поставляется версия этих компиляторов, необходимая для работы управляющих компьютеров под DOS);

    LCC 2.4 (в комплекте с MATLAB).

Только в Linux версии поддерживается компилятор.GNU C++.

Мы рассматриваем систему, ориентированную на IBM PC (Intel80X86/ Pentium) - совместимые компьютеры под управлением Microsoft Windows как наиболее распространенные. Math Works рекомендует графические видеокарты Accel Eclipse фирмы Accel Graphics для аппаратной поддержки новых, введенных в MATLAB 6, эффектов трехмерной графики (расчет сцены и рендеринг Open GL) на этой платформе. Но наряду с ними MathWorks тщательно протестировала чисто программные драйверы операционных систем Windows. Если ваш графический ускоритель, аппаратно поддерживающий Open GL, другого типа, фирма MathWorks, Inc. его не протестировала со своей обычной легендарной скрупулезностью. Но это не значит, что искажения трехмерной графики неизбежны. Если у вас будут сомнения, вы всегда сможете программно отключить аппаратную поддержку Open GL, прежнему эффективно используя свой графический ускоритель для обработки шгонов, и задействовать только тщательно проверенное MathWorks программное обеспечение Open GL.

Возможна работа MATLAB 6 на ряде других компьютерных платформ: Lintel (ядро Linux 2.2x на Intel Pentium или AMD Athlon), Sun SPARC/UltraSPARC (Solaris 2.6, 2.7, 2.8), Silicon Graphics (рабочие станции на процессорах R12000, R10000, R5000 под IRIX64, IRIX 6.5x), Compaq(DEC) Alpha (Tru64UNIX 4.0f, 5.0), HP (HP700 (HP-UX10.2), HP9000 (HP-UX10.2 или HP-UX11), IBM RS/6000 (AIX 4.3.3). MathWorks протестировала графические ускорители Sun 3D Creator (Solaris 2.6, 2.7, 2.8) и ускорители моделей Silicon Graphics на платформах IRIX/IRIX 64 6.5x для проверки поддержки Open GL на UNIX платформах. Отличия между платформами, таким образом, в основном связаны со скоростью выполнения, в особенности при выводе трехмерной графики при расчете сцены и рендеринге новым, введенным только в данной версии, механизмом Open GL, и с отдельными деталями интерфейса. Как гарантирует MathWorks, отличия совсем (или для платформ HP и IBM почти) не затрагивают базового набора возможностей ядра и пакетов прикладных программ. Например, пользователи Linux Red Hat 7.0 и Slackware 7.0, 7.1, как и пользователи на RISC-платформах IBM и HP, не должны использовать виртуальную машину Java и должны запускать MATLAB 6.0 с параметром nojvm (matl ab-nojvm). Но и это ограничение не распространяется на пользователей RedHat 6.2, Mandrake 7.1, SuSE 6.4, Debian 2.1 и 2.2. Поэтому читатели, работающие с MATLAB 6.0 на любой платформе, могут пользоваться всеми или большей частью материалов данной книги. Для Macintosh поддерживается только версия MATLAB 5.2.1, для пользователей OpenVMS рекомендуется стабилизированная на этой платформе MATLAB 5.2.

Установка системы обычно не имеет никаких специфических особенностей и подобна установке других программных продуктов. Но в среде Windows 2000/NT4 установить и первый раз запустить систему должен администратор системы. От вас требуется задать свое имя (фамилию), сокращенное название организации и пароль, который указывается на установочном компакт-диске или в имеющемся на нем файле. Возможны типичная установка и выборочная, в ходе которой вам предлагается выбор компонентов системы. Последняя предпочтительнее, так как из-за огромного объема системы ее полная установка не всегда возможна.

Прежде чем начинать установку системы, рекомендуется ознакомиться с описанием компонентов. В уроке 23 дается аннотационное (а в монографии - более подробное, хотя в версиях для выпуска 11) описание наиболее важных пакетов прикладных программ - дополнительных компонентов (пакетов инструментов, пакетов расширения, (toolbox)) системы MATLAB. Нет никакого смысла использовать все компоненты, поскольку вы всегда сможете по мере необходимости изменить набор установленных компонентов системы. Установив только нужные компоненты, вы можете уменьшить затраты памяти на жестком диске в несколько раз.

Рис. 2.1. Начало установки - открытие окна Мастера установки
Для установки системы на ПК достаточно вставить первый установочный компакт-диск в устройство считывания компакт-дисков. Диск запускается автома
тически, и Мастер установки проверяет, нет ли необходимости обновить или установить виртуальную машину Java фирмы Microsoft. Если такая необходимость есть, то вам надо согласиться с предложением Мастера установки. После того как Мастер установки установит или обновит виртуальную машину Java Microsoft, нужно обязательно ответить согласием на предложение перезагрузить компьютер (restart). Если Мастер установки не предложил вам обновить вашу виртуальную машину Java, но в процессе установки сообщит, что необходимый класс Java отсутствует, не прерывайте установку и не извлекайте компакт-диск. Вам достаточно выбрать Пуск > Выполнить > Обзор, выбрать в папке msutils вашего первого установочного компакт-диска файл msjavx86.exe и запустить его. После установки виртуальной машины Java и перезагрузки компьютера установка MATLAB продолжится автоматически. В самом начале установки собственно MATLAB Мастер установки выводит временное окно - заставку системы. При этом копируются вспомогательные файлы MathWorks Installer (Мастера установки), что показано на рис. 2.1.

Установка осуществляется с помощью ряда окон Мастера установки. Одно из них и показано на рис. 2.1. Прочтя его текст, надо нажать кнопку Next (Далее). Появится подббное окно с запросом на ввод персонального номера лицензии - рис. 2.2. Введя номер лицензии и подтвердив его щелчком на кнопке Next (Далее), можно получить окно с текстом лицензионного соглашения - рис. 2.3. Если вы с ним согласны, следует вновь щелкнуть кнопку Next (Далее).

Рис. 2.2. Окно с запросом персонального номера лицензии
Следующее окно (рис. 2.4) требует ввода пользователем своего имени и названия организации. Их можно сократить, как показано на рис. 2.4.

Рис. 2.3. Окно с текстом лицензии
Выполнив эти установки и щелкнув кнопку Next (Далее) (она становится доступной, если данные введены верно), можно получить окно с полем для указания имени папки, в которую будет установлена система, и с полным перечнем компонентов системы. Это окно представлено на рис. 2.5. В нем следует установить флажки напротив названий нужных компонентов.

Рис. 2.4. Окно установки имени пользователя и организации

Рис. 2.5. Окно выбора компонентов системы MATLAB
Здесь обратите особое внимание на указание свободного места в выбранном разделе жесткого диска и на данные о занимаемом системой объеме дискового пространства. Он должен быть заметно меньше, чем объем свободного пространства выбранного раздела диска, поскольку в нем, как правило, размещаются и служебные файлы операционной системы Windows 95/98/Me/ 2000/NT4, в частности временные файлы.

Рис. 2.6. Предупреждение об отсутствии папки для установки системы MATLAB 6.0
Если объема выбранного раздела явно недостаточно, то, во-первых, просмотрите другие разделы жесткого диска, а во-вторых, умерьте свои аппетиты в части установки расширений системы. Скорее всего, большинство этих расширений вам просто не понадобится, поскольку относится к не интересующим вас разделам науки и техники. Кроме того, система помощи может, например, оставаться на компакт-диске, так как вы сможете установить путь к файлам справочной системы на компакт-диске из пользовательского интерфейса после установки системы.
Обратите внимание и на выбор папки для размещения файлов системы MAT-LAB 6.0 - их тысячи! Если вы решили сменить предложенное вам название и место размещения папки для системы, то в случае отсутствия папки, название которой было введено вами, Мастер установки. (MathWorks Installer) выведет окно с сообщением об этом (рис. 2.6).
Вы должны согласиться с предложением о задании новой папки, щелкнув кнопку Yes (Да), или вернуться к окну рис. 2.5, щелкнув кнопку No (Нет). После этого и после выбора необходимых компонентов надо щелкнуть кнопку Next (Далее). Затем начинается самый длительный этап установки. Все файлы системы разар-хивируются и переносятся в создаваемые для них папки. Этот процесс сопровождается контролем по линейным индикаторам (рис. 2.7).




Рис. 2.7. Процесс установки системы MATLAB
Иногда возможно появление окон с сообщением о наличии на вашем компьютере каких-либо файлов, которые входят в состав системы MATLAB. В этом случае вам предоставляется возможность сохранить существующий файл или записать на его место новый файл системы MATLAB. Последнее, пожалуй, более целесообразно, так как MATLAB - очень сложная и объемная система и лучше не рисковать устанавливать ее с «чужими» файлами.
Процесс установки на компьютере Pentium II 350 МГц с 32-скоростным приводом CD-ROM идет довольно медленно и занимает больше часа при полной установке системы. Он может затянуться на несколько часов на менее мощном ПК. После установки надо произвести перезагрузку компьютера или временно отложить ее.
Запуск MATLAB без перезагрузки компьютера не рекомендуется, поскольку может протекать некорректно. Так что если вы отложили перезагрузку компьютера, не забудьте провести ее перед первым запуском системы MATLAB.
Система MATLAB состоит из многих тысяч файлов, находящихся в множестве папок. Полезно иметь представление о содержании основных папок, поскольку это позволяет быстро оценить возможности системы - например, узнать, какие операторы, функции или графические команды входят в систему.
В MATLAB особое значение имеют файлы двух типов - с расширениями.mat и.т. Первые являются бинарными файлами, в которых могут храниться значения переменных. Вторые представляют собой текстовые файлы, содержащие внешние программы, определения команд и функций системы. Именно к ним относится большая часть команд и функций, в том числе задаваемых пользователем для решения своих специфических задач. Нередко встречаются и файлы с расширением.с (коды на языке Си), файлы с откомпилированными кодами MATLAB с расширением.тех и другие. Исполняемые файлы имеют расширение.ехе.
Особое значение имеет папка MATLAB/TOOLBOX/MATLAB. В ней содержится набор стандартных m-файлов системы. Просмотр этих файлов позволяет детально оценить возможности поставляемой конкретной версии системы. Ниже перечислены основные подпапки с этими файлами (деление на категории условно, на самом деле все подпапки находятся в общей папке MATLAB/TOOLBOX/MATLAB).

Подпапка команд общего назначения:

    General - команды общего назначения: работа со справкой, управление окном MATLAB, взаимодействие с операционной системой и т. д.

Подпапки операторов, конструкций языка и системных функций:

    Ops - операторы и специальные символы;

    Tang - конструкции языка программирования;

    Strfun - строковые функции;

    iofun - функции ввода/вывода;

    Timefun - функции времени и дат;

    Datatypes - типы и структуры данных.

Подпапки основных математических и матричных функций:

    Elmat - команды создания элементарных матриц и операций с ними;

    Elfun - элементарные математические функции;

    Specfun - специальные математические функции;

    matfun - матричные функции линейной алгебры;

    Datafun - анализ данных и преобразования Фурье;

    Polyfun - полиномиальные функции и функции интерполяции;

    Funfun - функции функций и функции решения обыкновенных дифференциальных уравнений;

    Soarfun - функции разреженных матриц.

Подпайки команд графики:

    Graph2d - команды двумерной графики;

    Graph3d - команды трехмерной графики;

    Specgraph - команды специальной графики;

    Graphics - команды дескрипторной графики;

    Uitools - графика пользовательского интерфейса.

Полный состав файлов каждой подпапки (их список содержится в файле соп-tents.m) можно вывести на просмотр с помощью команды help имя, где имя - название соответствующей подпапки.

Запуск MATLAB и работа в режиме диалога


В этой книге предполагается, что MATLAB используется в среде операционной системы Windows 95 или Windows 98/Me/2000. Копии сеансов работы MATLAB даны именно для этих случаев. Однако пользователи, работающие с Windows NT4, также могут обращаться к материалам данной книги без каких-либо ограничений, поскольку отличия касаются лишь мелких деталей пользовательского интерфейса. Это справедливо, хотя в меньшей мере, и для пользователей систем MATLAB на иных платформах.


Рис. 2.8. Подготовка к запуску MATLAB
Рис. 2.8 иллюстрирует подготовку к запуску системы MATLAB 6.0 из главного меню операционной системы Windows 98 со стандартным видом рабочего стола, подобным использованному в Windows 95. Для раскрытия главного меню активизируется кнопка Пуск (Start), расположенная внизу рабочего стола слева, или можно щелкнуть на значке с логотипом системы на рабочем столе Windows.
Далее мы не всегда будем повторять полное название системы - MATLAB 6.0 - и ограничимся сокращенным названием MATLAB.
После запуска MATLAB (см. рис. 2.8) на экране появляется основное окно системы MATLAB, показанное на рис. 2.9. Обычно это окно раскрыто не полностью и занимает часть рабочего стола. Вы можете раскрыть окно полностью, щелкнув на средней из трех кнопок, расположенных в конце титульной (верхней) строки окна. Левая кнопка сворачивает окно в кнопку с именем приложения, помещаемую в панель задач Windows 95/98, а правая закрывает окно и прекращает работу с MATLAB. Система готова к проведению вычислений в командном режиме. При этом вы можете не обращать внимания на новации пользовательского интерфейса, привнесенного операционными системами Windows 95 и 98/Me/2000/NT4, в виде расширяемого окна и панели инструментов. Мы обсудим их роль позже. Тем не менее сразу бросается в глаза существенное изменение интерфейса у системы MATLAB 6.0 по сравнению с предшествующей версией MATLAB 5.3.I.
Для уточнения версии системы следует вывести окно с информацией о системе (команда About MATLAB (О MATLAB) в меню Help (Помощь). Это окно представлено на рис. 2.10 в центре. Из него видно, что запущена версия 6.0 (R12) от 22 сентября 2000 г. Поскольку номер лицензии имеет конфиденциальный характер, вместо него на рисунке показан 0.

Рис. 2.9. Окно системы MATLAB после запуска и выполнения простых вычислений


Рис. 2.10. Окно с логотипом системы MATLAB 6.0
Полезно знать, что в начале запуска автоматически выполняется команда rnatl abrc, которая исполняет загрузочный файл matlabrc.m и файл startup.m, если таковой существует. Эти файлы выполняют начальную настройку терминала системы и задают ряд ее параметров. В частности, могут быть заданы пути доступа к другим файлам, необходимым для корректной работы системы MATLAB. Таким образом, опытные пользователи могут выполнить настройку системы под свои запросы. Однако в большинстве случаев особой необходимости в этом нет. Поскольку указанные файлы имеют текстовый формат, их легко просмотреть с помощью какого-либо текстового редактора или с помощью команды type в командном режиме работы MATLAB.
Сеанс работы с MATLAB принято именовать сессией (session). Сессия, в сущности, является текущим документом, отражающим работу пользователя с системой MATLAB. В ней имеются строки ввода, вывода и сообщений об ошибках. Входящие в сессию определения переменных и функций, расположенные в рабочей области памяти, но не саму сессию, можно записать на диск (файлы формата.mat), используя команду save (Сохранить). Команда load (Загрузить) позволяет считать с диска данные рабочей области. Фрагменты сессии можно оформить в виде дневника с помощью команды diary (Дневник). Позже мы обсудим эти команды подробно.

Новый и старый облик системы MATLAB 6.0


Пользователи, уже имеющие опыт работы с системами MATLAB, будут приятно (а кое-кто, напротив, неприятно) удивлены новациями пользовательского интерфейса системы MATLAB 6.0. В новой версии пользовательского интерфейса не осталось и следа от прежней строгой скромности.
В новой версии вид окна системы (рис. 2.9) уже вполне отвечает канонам современного интерфейса. Пользовательский интерфейс многооконный и имеет ряд средств прямого доступа к различным компонентам системы. Бросается в глаза новый пункт меню - Web. Он дает прямой выход в Интернет (см. урок 1).
В панели инструментов добавлена позиция ввода ранее отмененной операции и меню просмотра файловой системы с кнопкой его открытия. Но самые решительные изменения произошли в левой части общего окна системы - здесь появились окна доступа к компонентам системы Launch Pad/Workspace (Панель запуска/ Рабочая область) и окно Current Directory (текущей папки).
Надо прямо признать, что особой необходимости в этих новациях нет, поскольку старые пользователи уже привыкли к крайней простоте интерфейса систем MATLAB. Учтя это, разработчики системы ввели в позицию View (Вид) меню команду Desktop Layout > Command Windows Only (Только командное окно). Стоит ее исполнить, как вид окна системы будет очень напоминать добрый старый интерфейс версий MATLAB 5.* - рис. 2.11.

Рис. 2.11. Упрощенный интерфейс системы MATLAB 6.0
Если вы все же хотите вкусить прелести нового интерфейса, то исполните в той же позиции меню команду Desktop Layout > Default (Интерфейс по умолчанию). Там же вы найдете и другие возможности модификации вида интерфейса системы MATLAB 6.0.

Операции строчного редактирования


При работе с MATLAB в командном режиме действует простейший строчный редактор. Его команды перечислены в табл. 2.1.
Таблица 2.1. Команды строчного редактора MATLAB

Комбинация клавиш

Назначение

Ctrl+b

Ctrl+f

Ctrl +r

Ctrl +1

Home или Ctrl+a

End или Ctrl +e

Ctrl+рu Ctrl+n

Перелистывание предыдущих команд вверх или вниз для подстановки в строку ввода

Del или Ctrl+d

Ctrl+h

Ctrl+k

Стирание до конца строки

Esc

Очистка строки ввода

Ins

Включение/выключение режима вставки

PgUp

Перелистывание страниц сессии вверх

PgDn

Перелистывание страниц сессии вниз

Эти возможности кажутся примитивными, но позволяют пользователю быстро работать в стиле первых версий MATLAB для MS-DOS. Они обеспечивают важное свойство новых версий систем - их совместимость со старыми версиями в части преемственности навыков работы. Позже вы увидите, что в новых версиях есть вполне современный редактор со средствами отладки создаваемых докумен тов - m-файлов.

Обратите особое внимание на применение клавиш вверх и вниз. Они используются для подстановки после маркера строки ввода » ранее введенных строк, например для их исправления, дублирования или дополнения. При этом указанные клавиши обеспечивают перелистывание ранее введенных строк снизу вверх или сверху вниз. Такая возможность существует благодаря организации специального стека, хранящего строки с исполненными ранее командами.

Команды управления окном

Полезно сразу усвоить некоторые команды управления окном командного режима:

    Clс - очищает экран и размещает курсор в левом верхнем углу пустого экрана.

    Home - возвращает курсор в левый верхний угол окна.

    Echo on - включает режим вывода на экран текста Script-файла (файла-сценария).

    Echo off - выключает режим вывода на экран текста Script-файла.

    Echo - меняет режим вывода на противоположный.

    Echo on all - включает режим вывода на экран текста всех m-файлов.

    Echo off all - отключает режим вывода на экран текста всех m-файлов.

    Mоrе on - включает режим постраничного вывода (полезен при просмотре больших m-файлов).

    Mоrе off - отключает режим постраничного вывода (в этом случае для просмотра больших фалов надо пользоваться линейкой прокрутки).

В версии MATLAB 6.0 обе команды clc и home действуют аналогично - очищают экран и помещают курсор в левый верхний угол окна командного режима работы. Команды echo позволяют включать или выключать отображение текстов m-файлов при каждом обращении к ним. Как правило, отображение текста файлов сильно загромождает экран и часто не является необходимым. При больших размерах файлов начало их текста (листинга) убегает далеко за пределы области просмотра (текущего окна командного режима). Поэтому для просмотра длинных листингов файлов полезно включить постраничный вывод командой more on. Различие между m-файлами сценариев и функций мы обсудим позже.

MATLAB в роли суперкалькулятора


Система MATLAB создана таким образом, что любые (подчас весьма сложные) вычисления можно выполнять в режиме прямых вычислений, то есть без подготовки программы. Это превращает MATLAB в необычайно мощный калькулятор, который способен производить не только обычные для калькуляторов вычисления (например, выполнять арифметические операции и вычислять элементарные функции), но и операции с векторами и матрицами, комплексными числами, рядами и полиномами. Можно почти мгновенно задать и вывести графики различных функций - от простой синусоиды до сложной трехмерной фигуры.
Работа с системой в режиме прямых вычислений носит диалоговый характер и происходит по правилу «задал вопрос, получил ответ». Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) в командной строке и завершает ввод нажатием клавиши ENTER. В качестве примера на рис. 2.9 уже были показаны простейшие вычисления - вычисление выражения 2+3 и значения sin(l).
Даже из таких простых примеров можно сделать некоторые поучительные выводы:

    Для указания ввода исходных данных используется символ »;

    Данные вводятся с помощью простейшего строчного редактора;

    Для блокировки вывода результата вычислений некоторого выражения после него надо установить знак; (точка с запятой);

    Если не указана переменная для значения результата вычислений, то MATLAB назначает такую переменную с именем ans;

    Знаком присваивания является привычный математикам знак равенства =, а не комбинированный знак:=, как во многих других языках программирования и математических системах;

    Результат вычислений выводится в строках вывода (без знака »);

    Встроенные функции (например, sin) записываются строчными буквами, и их аргументы указываются в круглых скобках;

    Диалог происходит в стиле «задал вопрос - получил ответ».

Следующий пример (он показан на рис. 2.11) иллюстрирует применение системы MATLAB для выполнения простых векторных операций. В этом примере задается четырехэлементный вектор V со значениями элементов 1, 2, 3 и 4. Далее (сосредоточьте на этом внимание!) вычисляются функции синуса и экспоненты с аргументом в виде вектора, а не скаляра.
Две записи для вектора - V= и V= - являются идентичными. Таким образом, векторы задаются списком своих элементов, разделяемых пробелами или запятыми. Список заключается в квадратные скобки. Для выделения п- го элемента вектора V используется выражение V(n). Оно задает соответствующую индексированную переменную.
В большинстве математических систем вычисление sin(V) и exp(V), где V - вектор, сопровождалось бы выдачей ошибки, поскольку функции sin и ехр должны иметь аргумент в виде скалярной величины. Однако MATLAB - матричная система, а вектор является разновидностью матрицы с размером 1х n. Поэтому в нашем случае результат вычислений будет вектором того же размера, что и аргумент V, но элементы возвращаемого вектора будут синусами или экспонентами от элементов вектора V.

Рис. 2.12. Простейшие операции с матрицей
Еще один пример (рис. 2.12) демонстрирует простейшие операции с матрицей. Здесь задана матрица М с размером 2x2 и вычислена матрица MX=sin(M).
Матрица задается в виде ряда векторов, представляющих ее строки и заключенных в квадратные скобки. Для разделения элементов векторов используется пробелили запятая, а для отделения одного вектора от другого - точка с запятой. Для выделения отдельного элемента матрицы М используется выражение вида M(j,i), где М - имя матрицы, j - номер строки и 1 - номер столбца.
Как видно из приведенных примеров, ввод исходных выражений для вычислений в системе MATLAB осуществляется в самом обычном текстовом формате. В этом же формате выдаются результаты вычислений, за исключением графических. Приведем пример записи вычислений, показанных на рис. 2.8 и 2.9:
То get started, select "MATLAB Help" from the Help menu.

» 2+3

Ans=
5
» sin(l)

Ans=
0.8415

» type sin
sin is a built-in function.

» help sin

SIN Sine.
SIN(X) is the sine"of the elements of X.

Overloaded methods
help sym/sin.m
» V=

V =
1 2 3 4 » sin(V) ans =
0.8415 0.9093 0.1411 -0.7568

» 3*V

Ans =

3 6 9 12

» V^2

Error using ==> ^

Matrix must be square.

» V.^2

Ans=
1 4 9 16

» V+2

Ans =
3 4 5 6

»
Обратите внимание на форму ответов при выполнении простых операций без указания переменной, которой присваивается результат. В таких случаях MATLAB сам назначает переменную ans, которой присваивается результат и значение которой затем выводится на экран.
Сравните эти записи с записями в реальных сессиях (рис. 2.9 и 2.11). Вы наверняка отметите, что они практически идентичны. Разве что в текстовых вариантах примеров для экономии бумаги, на которой печаталась эта книга, убраны пропуски между строками. Мы будем показывать представление сессий в виде прямых копий экрана только в том случае, когда это связано со спецификой проведения вычислений, например когда они сопровождаются выводом графиков или демонстрацией элементов пользовательского интерфейса. В остальных случаях будет использоваться представление сессии прямо в тексте книги в представленном выше текстовом формате - основном для командного режима работы с системой MATLAB. При этом строки ввода будут отмечаться маркером ввода » в их начале. Ради компактности записи пустые строки будут опускаться.

О переносе строки в сессии
В некоторых случаях вводимое математическое выражение может оказаться настолько длинным, что для него не хватит одной строки. В этом случае часть выражения можно перенести на новую строку с помощью знака многоточия «...» (3 или более точек), например:

s = 1-1/2 + 1/3- 1/4 + 1/5 - 1/6 + 1/7 ... 1/8 + 1/9 - 1/10 + 1/11 - 1/12:
Этот прием может быть весьма полезным для создания наглядных документов, у которых предотвращается заход строк в невидимую область окна. Вообще говоря, максимальное число символов в одной строке командного режима - 4096, а в m-файле - не ограничено, но со столь длинными строками работать неудобно. В ранних версиях в одной строке было не более 256 символов.

Основные объекты MATLAB


Понятие о математическом выражении


Центральным понятием всех математических систем является математическое выражение. Оно задает то, что должно быть вычислено в численном (реже символьном) виде. Вот примеры простых математических выражений:
2+3
2.301*sin(x)
4+ехр(3)/5
sqrt(y)/2
sin(pi/2)

Математические выражения строятся на основе чисел, констант, переменных, операторов, функций и разных спецзнаков. Ниже даются краткие пояснения сути этих понятий.

Действительные и комплексные числа


Число - простейший объект языка MATLAB, представляющий количественные данные. Числа можно считать константами, имена которых совпадают с их значениями. Числа используются в общепринятом представлении о них. Они могут быть целыми, дробными, с фиксированной и плавающей точкой. Возможно представление чисел в хорошо известном научном формате с указанием мантиссы и порядка числа.
Ниже приводятся примеры представления чисел:
0

2
-3
2.301 0.00001 123.45бе-24
-234.456е10
Как нетрудно заметить, в мантиссе чисел целая часть отделяется от дробной не запятой, а точкой, как принято в большинстве языков программирования. Для отделения порядка числа от мантиссы используется символ е. Знак «плюс» у чисел не проставляется, а знак «минус» у числа называют унарным минусом. Пробелы между символами в числах не допускаются.
Числа могут быть комплексными: z =Rе(x)+Im(x)*i. Такие числа содержат действительную Re(z) и мнимую Im(z) части. Мнимая часть имеет множитель i или j, означающий корень квадратный из -1:
3i

2+3i
-3.141i
-123.456+2.7e-3i
Функция real (z) возвращает действительную часть комплексного числа, Re(z), a функция imag(z) - мнимую, Im(z). Для получения модуля комплексного числа используется функция abs(z), а для вычисления фазы - angle(Z). Ниже даны простейшие примеры работы с комплексными числами:
»i
ans=
0 +1.0000i
» j
ans =
0 + 1.0000i

» z=2+3i

Z =
2.0000 + 3.0000i

» abs(z)

Ans =
3.6056

» real(z)

ans=
2
» imag(z)

Ans =
3
» angle(z)

Ans =
0.9828

В MATLAB не принято делить числа на целые и дробные, короткие и длинные и т. д., как это принято в большинстве языков программирования, хотя задавать числа в таких формах можно. Вообще же операции над числами выполняются в формате, который принято считать форматом с двойной точностью. Такой формат удовлетворяет подавляющему большинству требований к численным расчетам, но совершенно не подходит для символьных вычислений с произвольной (абсолютной) точностью. Символьные вычисления MATLAB может выполнять с помощью специального пакета расширения Symbolic Math Toolbox.

Константы и системные переменные


Константа - это предварительно определенное числовое или символьное значение, представленное уникальным именем. Числа (например 1, -2 и 1.23) являются безымянными числовыми константами.
Другие виды констант в MATLAB принято назвать системными переменными, поскольку, с одной стороны, они задаются системой при ее загрузке, а с другой - могут переопределяться. Основные системные переменные, применяемые в системе MATLAB, указаны ниже:

    i или j - мнимая единица (корень квадратный из -1);

    Pi - число п - 3.1415926...;

    Eps - погрешность операций над числами с плавающей точкой (2- 52);

    Realmin - наименьшее число с плавающей точкой (2- 1022);

    Realmax - наибольшее число с плавающей точкой (2 1023);

    Inf - значение машинной бесконечности;

    Ans - переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея;

    NaN - указание на нечисловой характер данных (Not-a-Number).

Вот примеры применения системных переменных:
»

2*pi ans =
6.2832

» eps

Ans =
2.2204е-016

» real min

ans=
2.2251e-308

» realmax

ans=
1.7977e+308

» 1/0
Warning: Divide by zero,

ans=
Inf
» 0/0
Warning: Divide by zero,

Ans =
NaN
Как отмечалось, системные переменные могут переопределяться. Можно задать системной переменной eps иное значение, например eps=0.0001. Однако важно то,
что их значения по умолчанию задаются сразу после загрузки системы. Поэтому неопределенными в отличие от обычных переменных системные переменные не могут быть никогда.
Символьная константа - это цепочка символов, заключенных в апострофы, например:
"Hello my friend!"
"Привет"
"2+3"

Если в апострофы помещено математическое выражение, то оно не вычисляется и рассматривается просто как цепочка символов. Так что " 2+3" не будет возвращать число 5. Однако с помощью специальных функций преобразования символьные выражения могут быть преобразованы в вычисляемые. Соответствующие функции преобразования будут рассмотрены в дальнейшем.

Текстовые комментарии


Поскольку MATLAB используется для достаточно сложных вычислений, важное значение имеет наглядность их описания. Она достигается, в частности, с помощью текстовых комментариев. Текстовые комментарии вводятся с помощью символа %, например так:
Bit is factorial function
В каждой большой программе есть свои «ложки дегтя». В MATLAB 6 такой «ложкой дегтя» является перевод строки при вводе буквы «с» русского алфавита в командной строке. В итоге ввод комментариев в командной строке на русском языке превращается в проблему. Пока автор может порекомендовать заменять русское «с» на английское, что на виде текстового комментария никак не сказывается. Не рекомендуется вводить русскоязычные комментарии и в тесты m-файлов при подготовке их в редакторе/отладчике (он будет описан позже). Это нередко делает программы неработоспособными. Жаловаться тут бесполезно - MATLAB англоязычный продукт и официальной локализованной под Россию версии этой системы пока нет.
Обычно первые строки m-файлов служат для описания их назначения, которое выводится на экран дисплея после команды » help Имя_файла.
Считается правилом хорошего тона вводить в m-файлы достаточно подробные текстовые комментарии. Без таких комментариев даже разработчик программных модулей быстро забывает о сути собственных решений. В текстовых комментариях и в символьных константах могут использоваться буквы русского алфавита - при условии, что установлены содержащие эти буквы наборы шрифтов (см. примечание. выше).

Переменные и присваивание им значений


Переменные - это имеющие имена объекты, способные хранить некоторые, обычно разные по значению, данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными.
В системе MATLAB можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком равенства =:
Имя_переменной - Выражение
Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение - вектор или матрица, то переменная будет векторной или матричной.
Имя переменной (ее идентификатор) может содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ. Имя любой переменной не должно совпадать с именами других переменных, функций и процедур системы, т. е. оно должно быть уникальным. Имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания _. Недопустимо включать в имена переменных пробелы и специальные знаки, например +,.-, *, / и т. д., поскольку в этом случае правильная интерпретация выражений становится невозможной.
Желательно использовать содержательные имена для обозначений переменных, например speed_l для переменной, обозначающей скорость первого объекта. Переменные могут быть обычными и индексированными, то есть элементами векторов или матриц (см. выше). Могут использоваться и символьные переменные, причем символьные значения заключаются в апострофы, например s="Demo".

Уничтожение определений переменных


В памяти компьютера переменные занимают определенное место, называемое рабочей областью (workspace). Для очистки рабочей области используется функция clear в разных формах, например:

    Clear - уничтожение определений всех переменных;

    Clear x - уничтожение определения переменной х;

    Clear a, b, с - уничтожение определений нескольких переменных.

Уничтоженная (стертая в рабочей области) переменная становится неопределенной. Использовать неопределенные переменные нельзя, и такие попытки будут сопровождаться выдачей сообщений об ошибке. Приведем примеры задания и уничтожения переменных:
» x=2*pi

Х =
6.2832
» V=

V =
12345

» MAT
??? Undefined function or variable "MAT".

» MAT=

MAT=
1234
5678

» clear V

» V

Undefined function or variable "V".
» clear

» x
??? Undefined function or variable "x".
» M
??? Undefined function or variable "M".

Обратите внимание на то, что сначала выборочно стерта переменная V, а затем командой clear без параметров стерты все остальные переменные.

Операторы и функции


Оператор - это специальное обозначение для определенной операции над данными - операндами. Например, простейшими арифметическими операторами являются знаки суммы +, вычитания -, умножения * и деления /. Операторы используются совместно с операндами. Например, в выражении 2+3 знак + является оператором сложения, а числа 2 и 3 - операндами.
Следует отметить, что большинство операторов относится к матричным операциям, что может служить причиной серьезных недоразумений. Например, операторы умножения * и деления / вычисляют произведение и частное от деления двух многомерных массивов, векторов или матриц. Есть ряд специальных операторов, например, оператор \ означает деление справа налево, а операторы. * и. / означают соответственно поэлементное умножение и поэлементное деление массивов.
Следующие примеры поясняют сказанное на примере операций с векторами:
» Vl=

V1=
2468

» V2=

V2 =
1234

» V1/V2

Ans =
2
» V1.*V2

ans=
2 8 18 32

» V1./V2

Ans =
2 2 2 2
Полный список операторов можно получить, используя команду » help ops. Постепенно мы рассмотрим все операторы системы MATLAB и обсудим особенности их применения. А пока приведем только часть полного списка операторов, содержащую арифметические операторы:
» help ops

Operators and special characters.

Arithmetic operators.

Plus

Plus

+

Up! us

Unary plus

+

Minus

Minus

-

Umlnus

Unary minus

-

Mtimes

Matrix multiply

*

times

Array multiply

*

mpower

Matrix power

^

poWer

Array power

.^

mldlvlde

Backslash or left matrix divide

\

mrdlvlde

Slash or right matrix divide

/

Idi-vide

Left array divide

.\

rdlvlde

Right array divide

./

kron

Kronecker tensor product

kron

Функции - это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов и при этом возвращающие результаты этих преобразований. Возврат результата - отличительная черта функций. При этом результат вычисления функции с одним выходным параметром подставляется на место ее вызова, что позволяет использовать функции в математических выражениях, например функцию sin в 2*sin(pi/2).
Функции в общем случае имеют список аргументов (параметров), заключенный в круглые скобки. Например, функция Бесселя записывается как bessel(NU.X). В данном случае список параметров содержит два аргумента - NU в виде скаляра и X в виде вектора. Многие функции допускают ряд форм записи, отличающихся списком параметров. Если функция возвращает несколько значений, то она записывается в виде =func(Xl. X2...)
где Yl. Y2,... - список выходных параметров и XI, Х2.... - список входных аргументов (параметров).
Со списком элементарных функций можно ознакомиться, выполнив команду hel p elfun, а со списком специальных функций - с помощью команды help specfun. Функции могут быть встроенными (внутренними) и внешними, или т-функциями. Так, встроенными являются наиболее распространенные элементарные функции например, sin(x) и ехр(у), тогда как функция sinh(x) является внешней функцией. Внешние функции содержат свои определения в m-файлах. Задание таких функций с помощью специального редактора m-файлов мы рассмотрим в уроке 5. Встроенные функции хранятся в откомпилированном ядре системы MATLAB, в силу чего они выполняются предельно быстро.

Применение оператора: (двоеточие)


Очень часто необходимо произвести формирование упорядоченных числовых последовательностей. Такие последовательности нужны для создания векторов или значений абсциссы при построении графиков. Для этого в MATLAB используется оператор: (двоеточие):
Начальное_значение:Шаг:Конечное_значение
Данная конструкция порождает возрастающую последовательность чисел, которая начинается с начального значения, идет с заданным шагом и завершается конечным значением. Если Шаг не задан, то он принимает значение 1. Если конечное значение указано меньшим, чем начальное значение, - выдается сообщение об ошибке. Примеры применения оператора: даны ниже:
» 1:5
ans =
12345

» i=0:2:10

i = 0 2 4 6 8 10

» j=10:-2:2

J =10 8 6 4 2

» V=0:pi/2:2*pi;

» V

V =
0 1.5708 3.1416 4.7124 6.2832

» X= l:-.2:0

X=
1.0000 0.8000 0.6000 0.4000 0.2000 0

» 5:2
ans=
Empty matrix:1-by-0

Как отмечалось, принадлежность MATLAB к матричным системам вносит коррективы в назначение операторов и приводит при неумелом их использовании к казусам. Рассмотрим следующий характерный пример:
» х=0:5
х=
0 1 2 3 4 5

» cos(x)

Ans =
1.0000 0.5403 -0.4161 -0.9900 -0.6536 0.2837

» sin(x)/x

Ans = -0.0862

Вычисление массива косинусов здесь прошло корректно. А вот вычисление массива значений функции sin(x)/x дает неожиданный, на первый взгляд, эффект - вместо массива с шестью элементами вычислено единственное значение!
Причина «парадокса» здесь в том, что оператор / вычисляет отношение двух матриц, векторов или многомерных массивов. Если они одной размерности, то результат будет одним числом, что в данном случае и выдала система. Чтобы действительно получить вектор значений sin(x)/x, надо использовать специальный оператор поэлементного деления массивов - . /. Тогда будет получен массив чисел:
» sin(x)./x
Warning: Divide by zero.
ans =
NaN 0.8415 0.4546 0.0470 -0.1892-0.1918

Впрочем, и тут без особенностей не обошлось. Так, при х = 0 значение sin(x)/x дает устранимую неопределенность вида 0/0=1. Однако, как и всякая численная система, MATLAB классифицирует попытку деления на 0 как ошибку и выводит соответствующее предупреждение. А вместо ожидаемого численного значения выводится символьная константа NaN, означающая, что неопределенность 0/0 - это все же не обычное число.
Выражения с оператором: могут использоваться в качестве аргументов функций для получения множественных их значений. Например, в приводимом ниже примере вычислены функции Бесселя порядка от 0 до 5 со значением аргумента 0.5:
» bessel(0:l:5,l/2)

Ans =
0.9385 0.2423 0.0306 0.0026 0.0002 0.0000
А в следующем примере вычислено шесть значений функции Бесселя нулевого порядка для значений аргумента от 0 до 5 с шагом 1:
» bessel(0.0:1:5)

Ans =
1.0000 0.7652 0.2239 -0.2601 -0.3971 -0.1776

Таким образом, оператор: является весьма удобным средством задания регулярной последовательности чисел. Он широко используется при работе со средствами построения графиков. В дальнейшем мы расширим представление о возможностях этого оператора.

Сообщения об ошибках и исправление ошибок


Важное значение при диалоге с системой MATLAB имеет диагностика ошибок. Вряд ли есть пользователь, помнящий точное написание тысяч операторов и функций, входящих в систему MATLAB и в пакеты прикладных программ. Поэтому никто не застрахован от ошибочного написания математических выражений или команд. MATLAB диагностирует вводимые команды и выражения и выдает соответствующие сообщения об ошибках или предупреждения. Пример вывода сообщения об ошибке (деление на 0) только что приводился.
Рассмотрим еще ряд примеров. Введем, к примеру, ошибочное выражение » sqr(2)
и нажмем клавишу ENTER. Система сообщит об ошибке:
??? Undefined function or variable "sqr".
Это сообщение говорит о том, что не определена переменная или функция, и указывает, какая именно - sqr. В данном случае, разумеется, можно просто набрать правильное выражение. Однако в случае громоздкого выражения лучше воспользоваться редактором. Для этого достаточно нажать клавишу вниз для перелистывания предыдущих строк. В результате в строке ввода появится выражение » sqr(2)
с курсором в его конце. В версии MATLAB 6 можно теперь нажать клавишу Tab. Система введет подсказку, анализируя уже введенные символы. Если вариантов несколько, клавишу Tab придется нажать еще раз. Из предложенных системой трех операторов выбираем sqrt. Теперь с помощью клавиши вниз вновь выбираем нужную строку и, пользуясь клавишей влево, устанавливаем курсор после буквы г. Теперь нажмем клавишу вверх, а затем клавишу ENTER. Выражение примет следующий вид:
» sqrt(2)
ans= 1.4142
Если бы был только один вариант окончания введенных символов, то после нажатия клавиши Tab система бы закончила наш ввод без перевода строки. Вычисления дают ожидаемый результат - значение квадратного корня из двух.
В системе MATLAB внешние определения используются точно так же, как и встроенные функции и операторы. Никаких дополнительных указаний на их применение делать не надо. Достаточно лишь позаботиться о том, чтобы используемые определения действительно существовали в виде файлов с расширением.m. Впрочем, если вы забудете об этом или введете имя несуществующего определения, то система отреагирует на это звуковым сигналом (звонком) и выводом сообщения об ошибке:
» hsin(1)
??? Undefined function or variable "hsin".
» sinh(1)
ans= 1.1752

В этом примере мы забыли (нарочно), какое имя имеет внешняя функция, вычисляющая гиперболический синус. Система подсказала, что функция или переменная с именем hsin не определена ни как внутренняя, ни как m-функция. Зато далее мы видим, что функция с именем sinh есть в составе функций системы MATLAB - она задана в виде М-функции. Между тем в последнем примере мы не давали системе никаких указаний на то, что следует искать именно внешнюю функцию! И это вычисление прошло так же просто, как вычисление встроенной функции, такой как sin. Разумеется, скорость вычислений по внешним определениям несколько ниже, чем по встроенным функциям или операторам.
При этом вычисления происходят следующим образом: вначале система быстро определяет, имеется ли введенное слово среди служебных слов системы. Если да, то нужные вычисления выполняются сразу, если нет, система ищет m-файл с соответствующим именем на диске. Если файла нет, то выдается сообщение об ошибке, и вычисления останавливаются. Если же файл найден, он загружается с жесткого диска в память машины и исполняется. Этот алгоритм аналогичен применяемому в развиваемых и адаптируемых к задачам пользователя языкам программирования ЛОГО и ФОРТ .
Иногда в ходе вывода результатов вычислений появляется сокращение NaN (от слов Not a Number - не число). Оно обозначает неопределенность, например вида 0/0 или Inf/Inf, где Inf - системная переменная со значением машинной бесконечности. Могут появляться и различные предупреждения об ошибках (на английском языке). Например, при делении на 0 конечного/ числа появляется предупреждение «Warning: Devide by Zero.» («Внимание: Деление на ноль»). Диапазон чисел, представимых в системе, лежит от 10- 308 до 10+ 308 .
Вообще говоря, в MATLAB надо отличать предупреждение об ошибке от сообщения о ней. Предупреждения (обычно после слова Warning) не останавливают вычисления и лишь предупреждают пользователя о том, что диагностируемая ошибка способна повлиять на ход вычислений. Сообщение об ошибке (после знаков???) останавливает вычисления.

Форматы чисел


По умолчанию MATLAB выдает числовые результаты в нормализованной форме с четырьмя цифрами после десятичной точки и одной до нее. Многих такая форма представления не всегда устраивает. Поэтому при работе с числовыми данными можно задавать различные форматы представления чисел. Однако в любом случае все вычисления проводятся с предельной, так называемой двойной, точностью. Для установки формата представления чисел используется команда » format name где name - имя формата. Для числовых данных name может быть следующим сообщением: short - короткое представление в фиксированном формате (5 знаков), short e - короткое представление в экспоненциальном формате (5 знаков мантиссы и 3 знака порядка), long - длинное представление в фиксированном формате (15 знаков), long e - длинное представление в экспоненциальном формате (15 знаков мантиссы и 3 знака порядка), hex - представление чисел в шестнадцатеричной форме; bank - представление для денежных единиц.
Для иллюстрации различных форматов рассмотрим вектор, содержащий два элемента-числа:
х=
В различных форматах их представления будут иметь следующий вид:

format short format short e format long format long e format bank

1.3333 1.3333E+000 1.333333333333338 1.333333333333338E+000 1.33

0.0000 1.2345E-006 0.000001234500000 1.234500000000000E-006 0.00

Задание формата сказывается только на форме вывода чисел. Вычисления все равно происходят в формате двойной точности, а ввод чисел возможен в любом удобном для пользователя виде.

Формирование векторов и матриц

Особенности задания векторов и матриц


Описанные выше простые правила вычислений распространяются и на гораздо более сложные вычисления, которые (при использовании обычных языков программирования типа Бейсик или Паскаль) требуют составления специальных программ. MATLAB - система, специально предназначенная для проведения сложных вычислений с векторами, матрицами и массивами. При этом она по умолчанию предполагает, что каждая заданная переменная - это вектор, матрица или массив. Все определяется конкретным значением переменной. Например, если задано Х=1, то это значит, что X -это вектор с единственным элементом, имеющим значение 1. Если надо задать вектор из трех элементов, то их значения следует перечислить в квадратных скобках, разделяя пробелами. Так, например, присваивавание
» V=

V=
1 2 3
задает вектор V, имеющий три элемента со значениями 1, 2 и 3. После ввода вектора система выводит его на экран дисплея.
Задание матрицы требует указания нескольких строк. Для разграничения строк используется знак; (точка с запятой). Этот же знак в конце ввода предотвращает вывод матрицы или вектора (и вообще результата любой операции) на экран дисплея. Так, ввод
» М=;
задает квадратную матрицу, которую можно вывести:
» M
M =
1 2 3

4 5 6

7 8 9
Возможен ввод элементов матриц и векторов в виде арифметических выражений, содержащих любые доступные системе функции, например:
» V= :

» V

V =

2.2857 148.4132 3.1623
Для указания отдельного элемента вектора или матрицы используются выражения вида V(1) или M(i. j). Например, если задать
» М(2. 2)
arts= 5
то результат будет равен 5. Если нужно присвоить элементу M(i. j) [В тексте программ MATLAB лучше не использовать i и j как индексы, так как i и j - обозначение квадратного корня из -1. Но можно использовать I и J. - Примеч. ред. ] новое значение х, следует использовать выражение
M(ij)=x
Например, если элементу М(2, 2) надо присвоить значение 10, следует записать

» М(2. 2)=10
Выражение М(i) с одним индексом дает доступ к элементам матрицы, развернутым в один столбец. Такая матрица образуется из исходной, если подряд выписать ее столбцы.
Следующий пример поясняет такой доступ к элементам матрицы М:
» М=

М =
1 2 3
4 5 6
7 8 9

» М(2)
ans =
4
» M(8)

Ans =
6
» M(9)

Ans =
9
» М(5)=100;

» М

М =
1 2 3
4 100 6
7 8 9
Возможно задание векторов и матриц с комплексными элементами, например:
» i=sqrt(-l):
» СМ = + i*

или
» СМ -
Это создает матрицу:
CM=
1.0000 + 5.00001 2.0000 + 6.00001

3.0000 + 7.00001 4.0000 + 8.00001
Наряду с операциями над отдельными элементами матриц и векторов система позволяет производить операции умножения, деления и возведения в степень сразу над всеми элементами, т. е. над массивами. Для этого перед знаком операции ставится точка. Например, оператор * означает умножение для векторов или матриц, а оператор.* -поэлементное умножение всех элементов массива. Так, если М - матрица, то М.*2 даст матрицу, все элементы которой умножены на скаляр - число 2. Впрочем, для умножения матрицы,на скаляр оба выражения - М*2 и М.*2 - оказываются эквивалентными.
Имеется также ряд особых функций для задания векторов и матриц. Например, функция magic(n) задает магическую матрицу размера пхп, у которой сумма всех столбцов, всех строк и даже диагоналей равна одному и тому же числу:
» M=magic(4)

М =

16

2

3

13

5

11

10

8

9

7

6

12

4

14

15

1

» sum(M)

Ans=
34 34 34 34

» sum(M")

Ans=
34 34 34 34

» sum(diag(M))

Ans=
34

» M(1.2)+M(2.2)+M(3.2)+M(4.2)
ans= 34

Уже сама по себе возможность создания такой матрицы с помощью простой функции magic заинтересует любителей математики. Но векторных и матричных функций в системе множество, и мы их детально рассмотрим в дальнейшем. Напомним, что для стирания переменных из рабочей области памяти служит команда clear.

Объединение малых матриц в большую


Описанный способ задания матриц позволяет выполнить операцию конкатенации - объединения малых матриц в большую. Например, создадим вначале магическую матрицу размера 3x3:
» A=magic(3)
А=

8

1

6

3

5

7

4

9

2

Теперь можно построить матрицу, содержащую четыре матрицы:
» В-[А А+16:А+32 А+16]

В =

8

1

6

24

17

22

3

5

7

Новая версия системы MATLAB 6 - весьма громоздкий программный комплекс, который (при полной установке) требует до 1000-1500 Мбайт дисковой памяти (в зависимости от конкретной поставки, полноты справочной системы и числа устанавливаемых пакетов прикладных программ). Поэтому он поставляются исключительно на компакт-дисках. Полный комплект системы размещается на двух компакт-дисках только для чтения (CD-ROM), на одном из которых размещены PDF-файлы документации.

Для успешной установки MATLAB необходимы следующие минимальные средства:

  • компьютер с микропроцессором не ниже Pentium и математическим сопроцессором, рекомендуются процессоры Pentium PRO, Pentium II, Pentium III, Pentium IV или AMD Athlon;
  • устройство считывания компакт дисков (привод CD-ROM) (для установки), мышь, 8-разрядный графический адаптер и монитор, поддерживающие не менее 256 цветов;
  • операционная система Windows 95/98 (оригинальная или второе издание) / Me (Millennium Edition) /2000/ (допускается также NT4 с сервис-пакетами 5 или 6а);
  • ОЗУ емкостью 64 Мбайт для минимального варианта системы (рекомендуется иметь память не менее 128 Мбайт);
  • до 1500 Мбайт дискового пространства при полной установке всех расширений и всех справочных систем.

Для использования расширенных возможностей системы нужны графический ускоритель, Windows-совместимые звуковая карта и принтер, текстовый процессор Microsoft Word 95/97/2000 для реализации Notebook, компиляторы языков Си/Си++ и/или ФОРТРАН для подготовки собственных файлов расширения и браузер Netscape Navigator 4.0 и выше или Microsoft Internet Explorer 4.0 и выше. Для просмотра файлов справочной системы в формате PDF нужна программа Adobe Reader или Adobe Acrobat 3.0 и выше.

  • Компилятор Compaq Visual Fortran 5.0 или 6.1;
  • Microsoft Visual Си/С++ версий 5.0 или 6.0;
  • Borland Си/С++ версий 5.0, 5.02;
  • Borland C++Builder версий 3.0, 4.0 или 5.0;
  • WATCOM Си/Си++ версий 10.6 или 11 (фирмой Sybase более не поставляется версия этих компиляторов, необходимая для работы управляющих компьютеров под DOS);
  • LCC 2.4 (в комплекте с MATLAB).

Только в Linux версии поддерживается компилятор GNU C++.

Мы рассматриваем систему, ориентированную на IBM PC (Intel80X86/ Pentium) - совместимые компьютеры под управлением Microsoft Windows как наиболее распространенные. Math Works рекомендует графические видеокарты Accel Eclipse фирмы Accel Graphics для аппаратной поддержки новых, введенных в MATLAB 6, эффектов трехмерной графики (расчет сцены и рендеринг Open GL) на этой платформе. Но наряду с ними MathWorks тщательно протестировала чисто программные драйверы операционных систем Windows. Если ваш графический ускоритель, аппаратно поддерживающий Open GL, другого типа, фирма MathWorks, Inc. его не протестировала со своей обычной легендарной скрупулезностью. Но это не значит, что искажения трехмерной графики неизбежны. Если у вас будут сомнения, вы всегда сможете программно отключить аппаратную поддержку Open GL, прежнему эффективно используя свой графический ускоритель для обработки шгонов, и задействовать только тщательно проверенное MathWorks программное обеспечение Open GL.

Возможна работа MATLAB 6 на ряде других компьютерных платформ: Lintel (ядро Linux 2.2x на Intel Pentium или AMD Athlon), Sun SPARC/UltraSPARC (Solaris 2.6, 2.7, 2.8), Silicon Graphics (рабочие станции на процессорах R12000, R10000, R5000 под IRIX64, IRIX 6.5x), Compaq(DEC) Alpha (Tru64UNIX 4.0f, 5.0), HP (HP700 (HP-UX10.2), HP9000 (HP-UX10.2 или HP-UX11), IBM RS/6000 (AIX 4.3.3). MathWorks протестировала графические ускорители Sun 3D Creator (Solaris 2.6, 2.7, 2.8) и ускорители моделей Silicon Graphics на платформах IRIX/IRIX 64 6.5x для проверки поддержки Open GL на UNIX платформах. Отличия между платформами, таким образом, в основном связаны со скоростью выполнения, в особенности при выводе трехмерной графики при расчете сцены и рендеринге новым, введенным только в данной версии, механизмом Open GL, и с отдельными деталями интерфейса. Как гарантирует MathWorks, отличия совсем (или для платформ HP и IBM почти) не затрагивают базового набора возможностей ядра и пакетов прикладных программ. Например, пользователи Linux Red Hat 7.0 и Slackware 7.0, 7.1, как и пользователи на RISC-платформах IBM и HP, не должны использовать виртуальную машину Java и должны запускать MATLAB 6.0 с параметром nojvm (matlab-nojvm). Но и это ограничение не распространяется на пользователей RedHat 6.2, Mandrake 7.1, SuSE 6.4, Debian 2.1 и 2.2. Поэтому читатели, работающие с MATLAB 6.0 на любой платформе, могут пользоваться всеми или большей частью материалов данной книги. Для Macintosh поддерживается только версия MATLAB 5.2.1, для пользователей OpenVMS рекомендуется стабилизированная на этой платформе MATLAB 5.2.

Установка системы обычно не имеет никаких специфических особенностей и подобна установке других программных продуктов. Но в среде Windows 2000/NT4 установить и первый раз запустить систему должен администратор системы. От вас требуется задать свое имя (фамилию), сокращенное название организации и пароль, который указывается на установочном компакт-диске или в имеющемся на нем файле. Возможны типичная установка и выборочная, в ходе которой вам предлагается выбор компонентов системы. Последняя предпочтительнее, так как из-за огромного объема системы ее полная установка не всегда возможна.

Прежде чем начинать установку системы, рекомендуется ознакомиться с описанием компонентов. В уроке 23 дается аннотационное (а в монографии - более подробное, хотя в версиях для выпуска 11) описание наиболее важных пакетов прикладных программ - дополнительных компонентов (пакетов инструментов, пакетов расширения, (toolbox )) системы MATLAB. Нет никакого смысла использовать все компоненты, поскольку вы всегда сможете по мере необходимости изменить набор установленных компонентов системы. Установив только нужные компоненты, вы можете уменьшить затраты памяти на жестком диске в несколько раз.

Я только что установил Matlab R2011a на Ubuntu 12.04, используя автономную лицензию. Похоже, что установка работала правильно, и я выполнил следующие действия, чтобы избавиться от ошибки, которая, как представляется, была у всех (включая меня):

Sudo ln -s /lib/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6

Это избавило от ошибки, но у меня все еще есть проблема с запуском Matlab. Каждый раз, когда я запускаю его (набрав « » в терминале), появляется окно активации программного обеспечения Mathworks. Я предоставляю путь к файлу лицензии, он активируется успешно (без ошибок), но затем Matlab не запускается. Если я попытаюсь запустить его снова, произойдет то же самое.

Кто-нибудь знает, что может пойти не так? Моя последняя установка была 10.04, и у меня не было никаких проблем с запуском 2011a.

Я думаю, что лицензия должна быть обновлена. Я исправил проблему, запросив новую лицензию от Mathworks и активировав MATLAB с этим файлом лицензии. Они предоставили один и тот же ключ установки для идентификатора хоста моего компьютера, но файл «licence.lic» обновлен. Я думаю, что переустановка не нужна, активация с обновленной лицензией просто решает проблему.

Возможно ли, что запуск MATLAB таким образом запускает инструмент активации вместо MATLAB?

Попробуйте запустить /usr/local/MATLAB/R2011a/bin/matlab (изменить путь в соответствии с местоположением в вашей системе) в терминале, чтобы узнать, работает ли это MATLAB. Если нет, возможно, вы все равно можете получить сообщения об ошибках, которые могут быть полезны для вашего вопроса.

Старый поток я знаю, но у меня была такая же проблема. Проблема для меня, по крайней мере, заключалась в том, что рекомендуется устанавливать matlab с привилегиями root и, как таковые, когда дело доходит до активации, пользователь по умолчанию, получивший лицензию, стал root. Таким образом, я смог запустить MATLAB только при входе в систему как root. Проблема легко устраняется путем повторного запуска активации за пределами корня.

После общения с клиентом активации я наконец получил хороший ответ о том, почему MATLAB не активируется. Вот шаги, чтобы все работало! Это также предполагает, что вы установили MATLAB и не можете запустить его.

Быстрые вопросы, чтобы спросить себя

  1. Я запускал установщик как root?
  2. Где я установил MATLAB?

Если вы установили его как root (который должен иметь), то ваш штраф. Если не удалить и установить с правами root.

ОК! Пойдем!

    cd to туда, где вы установили MATLAB. Для меня это было задано по умолчанию, но вы, возможно, захотели установить его в другом месте.

    Место установки по умолчанию: /usr/local/MATLAB/R(year)(a or b)

    Теперь вы можете перечислить все, что находится в этом каталоге, набрав ls в окне терминала.

    Теперь введите cd еще раз, набрав cd bin (здесь хранится клиент активации)

    Введите терминал

    Sudo ./activate_matlab.sh

    Теперь появится окно, подобное тому, которое было сделано при его установке. На этот раз вам нужно проверить пузырь перед «Активировать вручную без Интернета».

    Теперь проверьте пузырь перед «У меня нет файла лицензии. Помогите мне со следующими шагами».

    Здесь вы найдете информацию об базовой установке вашего компьютера. Это было просто, чтобы проверить, что такое имя входа в компьютер, и убедиться, что оно является root .

    Теперь вернитесь в начало клиентского меню активации и заполните пузырь, в котором говорится: «Активировать автоматически, используя Интернет».

    Делайте все, что вы делали раньше, кроме этого времени в конце активации, когда он просит вас ввести имя пользователя вашего компьютера, вам нужно ввести root , а не ваше имя пользователя или вместо всего, что вы хотите поместить.

    Необязательно: если вы еще этого не сделали, вы можете установить matlab-support чтобы запустить ее после завершения активации MATLAB. Вы можете сделать это, набрав

    Sudo apt-get install matlab-support

Надеюсь, это поможет! ГУОК УДАЧИ!

Путь слишком старый, но просмотренный 4523 раза и активен 16 дней назад, так что все еще актуально. Вот как вы его решаете. В моем случае папка «~ / .matlab / R2015a_licenses /» не существовала. хотя «~ / .matlab». Поэтому я создал R2015a_licenses. Теперь проблема в том, что эта папка была доступна только для root. Таким образом, приложение активации не могло записать требуемый файл. Поэтому измените разрешение этой папки, используя «sudo chmod 777 R2015a_licenses». Теперь запустите matlab обычно (без sudo). Это должно привести вас к клиенту активации. в противном случае запустить клиент активации вручную (без sudo), он называется «activate_matlab.sh» в папке bin. выполните действия и дайте ему возможность определить имя пользователя и не изменять его. когда он выходит без ошибок, вы делаете с частью лицензии. Теперь может возникнуть еще одна проблема, что ваш matlab замерзает сразу после открытия окна и не идет дальше. Взгляните на это. «Перейдите в каталог« .matlab / »в домашнем каталоге пользователей. Переименуйте каталог с именем после версии MATLAB, который вы используете, чтобы иметь _old в конце. Если в названии есть папка с« _licenses », DO NOT переименуйте эту папку «вроде работайте». По виду я имею в виду, что Matlab жаловался, что он не может писать предпочтения в «~ / .matlab». Поэтому я изменил разрешение для этой папки на «chmod», а затем он сработал.

Если вы все еще читаете свою проблему, это довольно плохо. Удачи вам. Mathworks явно проделала очень плохую работу с Matlab ubuntu.

Я попросил техническую поддержку Matlab, как это можно исправить, и они сказали, что эта проблема может возникнуть, если у вас есть предыдущий файл пробной лицензии MATLAB, присутствующий в вашей системе.

Чтобы исправить это, удалите все файлы в следующих двух папках:

$MATLAB/licenses/

(где $ MATLAB – это каталог, в котором вы установили MATLAB. По умолчанию используется /usr/local/matlab/R2015a/licenses/)

~/.matlab/R2015a_licenses/ cd ~/.matlab/R2015a_licenses/ rm ./license.lic

После удаления всех файлов в этих папках попробуйте снова запустить MATLAB. Запустите его как свое обычное имя пользователя, а не как sudo или root. Вам будет предложено активировать еще раз. Завершите процесс в последний раз. Обратите внимание на экран при активации, где он запрашивает ваше имя пользователя Linux. Это должно быть обнаружено автоматически, и вы не должны его изменять.

Как только активация завершится, попробуйте снова запустить MATLAB.

Еще в конце 1970-х годов, ученные начали понимать, что Фортран является не самым лучшим языком программирования и что он уже устарел. Основываясь на этом, Клив Моулер решает создать новый язык программирования, а именно – Матлаб. Целью нового языка стало улучшение качества обучения студентов, позволяя им работать с библиотеками Linpack и EISPACK. Первые версии MATLAB были написаны на самом фортране, и лишь в 1984 году был переписан на С.

MATLAB или же Матлаб – это пакет взаимосвязанных модулей, которые используются для решения задач и осуществление технических вычислений. Также, Матлаб представляет собой и отдельный язык программирования, который и используется этими модулями.

Пакет программ Матлаб доступен для большинства операционных систем, таких как: Windows, Linux, Mac OS, Unix, а также, до версии R2010b была доступна и для операционной системы Solaris.

Изначальна программа создавалась с целью проектирования различных систем управления, но, благодаря тому, что проект привлек внимание общественности, его начали активно использовать для преподавания курсов линейной алгебры, а также численных методов.

Возможности

Возможности Матлаба реально огромные. Благодаря данному языку программирования миллионы ученных со всего мира получили возможность намного быстрее развивать свои проекты и совершать нужные вычисления. Стоит заметить, что данная программа создана специально для ученных или же для студентов, которые изучают нужный материал, обычному пользователю делать с MATLAB-ом нечего.

Возможности языка программирования в среде математических вычислений:

  1. Использование логических операторов.
  2. Осуществления матричных и векторных вычислений.
  3. Работа с нелинейными уравнениями.
  4. Оптимизация функций использующие нескольких переменных.
  5. Использование и анализ массивов с записями или же ячейками, а также работа с многомерными массивами.

Возможности в среде численных методов:

  1. Работа с дифференциальными уравнениями.
  2. Работа с алгебраическими уравнениями, а также поиск их корня.
  3. Одномерная интерполяция.
  4. Многомерная интерполяция.

Также, пользователь может работать с визуализацией функций и созданием графиков. В данной сфере, программа позволяет создать двухмерные, а также трехмерные графики, на основе анализа данных.

Плюсы и минусы

  1. Большой список возможностей.
  2. Высокий уровень вычислений.
  3. Возможность добавлять собственные функции в библиотеке ЯП.
  1. Высокий порог вхождения – чтобы пользоваться софтом надо иметь определенный уровень знаний.
  2. Метод дистрибуции по типу покупки лицензионной версии.

Скачать

MATLAB portable – это отличный пакет программ, а также язык программирования, который позволяет ученным работать все быстрее и отбросить мысль об вычислениях подальше. Также, она подойдет и студентам, которые только начинают изучать данные области математики. Визуализация функций, используемых данных и их представление в графической форме намного лучше позволяют понять принцип работы и решения той или иной задачи.

Обычно пакет программ распространяется только при помощи покупки лицензионной копии продукта. Но, наш сервис предлагает своим пользователям скачать бесплатно русскую версию matlab-a для операционной системы Windows x64. Еще одним плюсом является то, что наш сервис распространяет продукт вместе со встроенным ключом активации. Это означает, что после процесса скачивания и установки, программа не будет требовать дополнительных действий для полноценной работы, а можно будет сразу приступить за проект.







2024 © gtavrl.ru.