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

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

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

На заметку

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

Ссылка вида структура(индекс) означает обращение к экземпляру структуры - элементу массива. Инструкция вида массив_структур.поле (как, например, в команде MS.num) возвращает в качестве результата список из значений соответствующих полей элементов массива структур.

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

Во многом массив ячеек похож на обычный массив. Однако при этом важно помнить, что элементы такого массива в общем случае относятся к разным типам. Кроме того, при работе с массивами ячеек следует понимать разницу между ячейкой массива и содержимым ячейки массива. Создается массив ячеек с помощью функции cell() (аргументы – размеры массива) или путем явного указания элементов массива. Однако если элементы обычного массива заключаются в квадратные скобки, то элементы массива ячеек заключаются в фигурные скобки. Чтобы получить доступ к содержимому ячейки, индекс ячейки указывается в фигурных скобках после имени массива. Простой пример создания массива ячеек с помощью функции cell() приведен в документе на рис. Б.4.

Сначала командой IM=cell(2,3) объявляем массив ячеек размерами 2×3. Чтобы заполнить ячейки значениями, выполняем оператор цикла. Индексная переменная i пробегает в цикле значения от 1 до 3. В теле цикла выполняются две команды: IM{1,i}=ones(i) и IM{2,i}=rand(i,i). Таким образом, ячейки первого ряда массива ячеек IM заполняются квадратными единичными (заполненными единицами) матрицами размера 1, 2 и 3 соответственно. Ячейки второго ряда массива ячеек IM заполняются квадратными матрицами, заполненными случайными числами. Вызов имени массива ячеек IM приводит к отображению информации о содержимом ячеек массива. Чтобы получить содержимое ячейки массива, индексы указываем в фигурных скобках – как, например, в команде IM{1,2}. Результатом является квадратная матрица из единиц размера 2×2. Результатом вызова команды IM{2,3} является матрица из случайных чисел размера 3×3. Другой пример – на этот раз "явного" создания массива ячеек – приведен во второй части рассмотренного выше документа, представленной на рис. Б.5.

426

Приложение Б. Структуры и ячейки

Рис. Б.4. Создание массива ячеек с помощью функции cell()

Массив ячеек создается командой CA={'Текст',100;[1 2 3],IM}. Массив ячеек CA состоит из четырех ячеек – по две ячейки в строке. Первая ячейка в первой строке является текстом, вторая – числом. Первая ячейка второй строки содержит числовой массив, а вторая ячейка во второй строке сама является массивом ячеек – это тот массив IM из матриц, который был создан на предыдущем этапе (см. рис. Б.4). Как и в предыдущем случае, вызов команды из имени массива ячеек позволяет получить общие сведения о том, что записано в ячейки массива. Для доступа к содержимому ячейки индексы указываем в фигурных скобках. Например, в результате вызова команды CA{1,1} получаем значение первой ячейки в первой строке. Для инструкции CA{2,1} результатом является массив, записанный в эту ячейку. Возможно, комментариев потребует команда CA{2,2}{1,3}, в результате выполнения которой получаем квадратную матрицу размера 3×3, заполненную единицами. Объяснение простое. Результатом инструкции CA{2,2} является содержимое второй ячейки во втором столбце. Это массив ячеек IM. Поэтому инструкция CA{2,2}{1,3} на самом деле означает содержимое ячейки IM{1,3}. Это и есть наша загадочная матрица.

427

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

Рис. Б.5. Явное создание массива ячеек

428

Приложение В

Надстройка для работы с Excel

В сфере услуг еще, к сожалению, характер требуется. Не докажешь – не получишь!

К/ф "Чародеи"

Приложение Excel занимает особое место среди офисных приложений. Если коротко, то приложение это исключительно простое в использовании как для расчетного пакета и достаточно продуктивное как для массового приложения, рассчитанного на широкий круг пользователей. Более того, приложение Excel идеологически близко, если так можно выразиться, к пакету Matlab, поскольку в Excel также используется принцип реализации структур данных в виде таблиц/матриц. Это обстоятельство наводит на естественную мысль о том, чтобы объединить каким-то образом удобство интерфейса Excel и вычислительную мощь Matlab. Такая возможность реализуется с помощью надстройки Spreadsheet Link EX, которая входит в состав пакета Matlab. Здесь мы опишем, во-первых, как эта надстройка подключается, и, во-вторых, рассмотрим некоторые простые примеры использования возможностей надстройки.

На заметку

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

Общая идея, положенная в основу использования надстройки Spreadsheet Link EX, состоит в том, что после подключения надстройки часть функциональных возможностей Matlab становится доступной непосредственно из рабочего документа Excel. Другими словами, данные из документа Excel могут быть импортированы в рабочее пространство Matlab, обработаны там и экспортированы в документ Excel. Еще раз подчеркнем, что все эти действия можно выполнить, так сказать, "не покидая" приложение Excel.

Как уже отмечалось выше, для того, чтобы использовать надстройку Spreadsheet Link EX, ее необходимо подключить. Процедура эта достаточно простая и стандартная для Excel. В частности, на вкладке Файл ленты приложения Excel выбираем команду Параметры (рис. В.1).

В результате открывается окно настроек Excel, которое называется Параметры Excel. В левой части окна имеется ряд пиктограмм, определяющих

429

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

тот или иной раздел для выполнения настроек. В данном случае нас интересует раздел Надстройки (рис. В.2).

Рис. В.1. На вкладке Файл выбираем команду Параметры

В нижней части этого окна есть раскрывающийся список Управление, который по умолчанию открыт в позиции Надстройки Excel. Справа от этого списка есть кнопка Перейти, которую необходимо щелкнуть. После этого откроется диалоговое окно Надстройки, в котором непосредственно выбираются надстройки для подключения. В принципе, достаточно в списке надстроек установить флажок опции с названием надстройки Spreadsheet Link EX и щелкнуть кнопку OK (рис. В.3).

Проблема,однако,втом,что,скореевсего,вспискедоступныхнадстроекнужной надстройки не будет. Причина та, что по умолчанию в списке надстроек отображаются только те из них, что записаны в определенный каталог. Очевидно, что файл надстройки Spreadsheet Link EX находится не там, где хотелось бы. Соответствующий файл следует найти, что называется, вручную. Для этого щелкаем кнопку Обзор и в открывшемся окне находим в системе каталогов файл надстройки Spreadsheet Link EX. В Matlab для разных версий Excel предлагаются разные файлы надстройки. Для версии Excel 2010 (как и Excel 2007) файл называется excllink2007.xlam. По умолчанию файл находится в подкаталоге \toolbox\exlink того каталога, в который установлен Matlab (например, каталог C:\Program Files\MATLAB\R2010b\

430

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