Материал: Matlab. Практический подход. Самоучитель

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Приложение В. Надстройка для работы с Excel

toolbox\exlink). Указанный файл следует выбрать и подтвердить свой выбор. Как следствие, в списке надстроек в окне Надстройки (см. рис. В.3) появится опция с именем надстройки Spreadsheet Link EX.

Рис. В.2. В окне Параметры Excel в разделе Надстройки необходимо щелкнуть кнопку Перейти

Рис. В.3. Для подключения надстройки Spreadsheet Link EX необходимо установить флажок соответствующей опции

431

Самоучитель Matlab

После того, как надстройка Spreadsheet Link EX подключена, на вкладке Главная ленты приложения Excel появляется группа из одной пиктограммы с фирменным Matlab-овским изображением (рис. В.4).

Рис. В.4. Пиктограмма надстройки Spreadsheet Link EX на вкладке Главная

Данная группа представляет собой раскрывающийся список с командами, посредством которых выполняются некоторые настройки и базовые действия по взаимодействию приложений Matlab и Excel. Для выполнения ряда важных настроек используем команду Preferences из раскрывающегося списка команд (рис. В.4). Открывается окно настроек Matlab Preferences (рис. В.5).

Рис. В.5. Окно настроек надстройки Spreadsheet Link EX

Окно содержит ряд опций и текстовое поле. По умолчанию опция Start Matlab at Excel startup активна, и это означает, что при запуске Excel автоматически будет активироваться (запускаться) и Matlab (в режиме командного окна). Полезность такого режима во многих случаях сомни-

432

Приложение В. Надстройка для работы с Excel

тельна, если только не предполагается использовать Excel исключительно для совместной работы с Matlab. Кроме того, использование режима автоматического запуска Matlab при запуске Excel увеличивает время загрузки приложения. Поэтому нередко от данного режима отказываются – в этом случае необходимо отменить флажок опции Start Matlab at Excel startup.

Если установить флажок опции Use MATLAB desktop, то при запуске Excel приложение Matlab будет запускаться не в режиме командного окна, а в обычном рабочем режиме (главное окно приложения и вспомогательные окна). Наличие флажка этой опции не означает автоматический запуск приложения Matlab при запуске Excel.

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

Если установить флажок опции Force use of MATLAB cell arrays with MLPutMatrix, перейдем в режим, при котором экспорт данных из рабочего листа Excel в документ Matlab с помощью функции MLPutMatrix() выполняется в виде массива ячеек.

На заметку

Как мы увидим из дальнейшего, для экспорта данных из диапазонов ячеек таблицы Excel в массив в документе Matlab используется функция MLPutMatrix().

Опция Treat missing/empty cells as NaN позволяет контролировать способ обработки пустых ячеек при экспорте из Excel в Matlab. Если флажок опции не установлен, пустые ячейки обрабатываются как такие, что содержат нулевые значения. Если флажок опции установлен, то такие ячейки обрабатываются как имеющие нечисловое значение (значение NaN).

Что касается текстового поля в окне настроек Matlab Preferences, то в этом поле отображается рабочий каталог для приложения Matlab (содержимое каталога отображается в окне Current Folder после загрузки приложения Matlab).

Для начала работы с надстройкой Spreadsheet Link EX необходимо, вопервых, запустить приложение Excel и, во-вторых, загрузить Matlab (загрузить из Excel – это важно!). Если Matlab автоматически не загружается при запуске Excel, необходимо воспользоваться командой Start MATLAB, как показано на рис. В.6.

433

Самоучитель Matlab

Рис. В.6. В случае необходимости выполняем команду Start MATLAB

После того, как все формальности выполнены, можно приступить непосредственно к работе. По большому счету вся "работа" сводится к следующим этапам (в разной последовательности и в разном объеме):

Экспорт данных из рабочего пространства Excel в рабочее пространство Matlab.

Выполнение вычислений и обработка данных в среде Matlab через команды рабочей среды Excel.

Импорт данных из рабочего пространства Matlab в рабочий документ Excel.

При этом непосредственно вычисления в рабочем документе Excel мы особо не выделяем, поскольку в том нет ничего необычного (во всяком случае, для пользователей, знакомых с Excel). Рассмотрим небольшой пример. В нем реализованы все три этапа. А именно, в документе Excel вводятся элементы некоторой матрицы. Эта матрица экспортируется в Matlab, там для матрицы вычисляется обратная, и эта обратная матрица импортируется в Excel.

На заметку

Сразу отметим, что такая задача может быть решена исключительно средствами Excel без привлечения Matlab. Но здесь именно тот случай, когда важен не результат, а метод его получения.

Рабочий документ Excel, в котором выполняются соответствующие вычисления, представлен на рис. В.7.

Значения элементов исходной матрицы записаны в ячейки диапазона E2:G4. Для сравнения в ячейках E7:G9 с помощью встроенной функции Excel МОБР() вычисляется обратная матрица.

434

Приложение В. Надстройка для работы с Excel

Рис. В.7. Документ Excel с вычислениями

На заметку

Для вычисления обратной матрицы выделяем диапазон ячеек E7:G9 и вводим формулу массива =МОБР(E2:G4) (формула вводится нажатием комбинации клавиш <Ctrl>+<Shift>+<Enter>).

Но главные события происходят не здесь. Все, что нас интересует в первую очередь, связано с ячейками C2:C4. Если все вычисления выполнены корректно, в этих ячейках должны быть нули. В ячейку C2 вводится формула =MLPutMatrix("A";E2:G4). Эта команда означает, что содержимое диапазона ячеек E2:G4 экспортируется в Matlab и присваивается в качестве значения переменной A. Первым аргументом функции надстройки MLPutMatrix() указывается (в двойных кавычках) имя переменной в рабочей среде Matlab, которой присваивается, в качестве значения, содержимое диапазона, который указывается вторым аргументом функции MLPutMatrix(). В результате выполнения этой команды в рабочем пространстве Matlab создается переменная A и ей присваивается соответствующее значение (этот факт мы еще проверим).

На заметку

В русифицированной версии Excel аргументы функций разделяются точкой с запятой. В оригинальной версии приложения аргументы функций разделяются запятыми.

435

Источник: https://studfile.net/preview/16433384/