Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание массива символьных ячеек из массива строк↑ ⇐ ПредыдущаяСтр 3 из 3 Содержание книги
Поиск на нашем сайте
Для создания из массива символов S строкового массива ячеек может использоваться функция cellstr(S). Каждый ряд массива символов превращается в отдельную ячейку. Следующий пример поясняет применение функции cellstr: >> S={'Привет' 'дорогой' 'друг'}; >> C=cellstr(S) C = 'Привет' 'дорогой' 'друг' Это еще один способ формирования массивов ячеек. Функция iscellstr(C) равна 1, если ее аргумент С – строковый массив ячеек, и 0, если это неверно. Присваивание с помощью функции deal С помощью функции deal возможно множественное присваивание входных данных выходным: • [A,B,C,…]=deal(X,Y,Z,…) обеспечивает последовательное присваивание входных данных выходным, то есть A=X, B=Y, C=Z и т. д.; • [A,B,C,…]=deal(X) присваивает единственный вход всем выходам, то есть A=X, B=X, C=X и т. д. Возможен ряд полезных применений функции deal: • [S.FIELD]=deal(X) присваивает всем полям FIELD структуры S значения X. Если S не существует, то нужно использовать конструкцию [S(1:M).FIELD]=deal(X); • [X{:}]=deal(A.FIELD) копирует поля FIELD структуры A в массив ячеек X. Если X не существует, следует использовать конструкцию [X{1:M}]=deal(A.FIELD); • [A,B,C,…]=deal(X{:}) копирует содержимое массива ячеек X в отдельные переменные A, B, C, …; • [A,B,C,…]=deal(S.FIELD) копирует содержимое поля FIELD массива структур S в отдельные переменные A, B, C, …. Следующий пример иллюстрирует применение функции deal: >> [X,Y,Z]=deal(1,2+3i,'Привет!') X = 1 Y = 2.0000 + 3.0000i Z =Привет! >> [X Y Z]=deal(“Привет!”) X =Привет! Y =Привет! Z =Привет! Тестирование имен массивов ячеек Ввиду обилия типов данных в системе MATLAB часто возникает необходимость их тестирования. Для тестирования массивов ячеек может использоваться функция iscell(C), которая возвращает логическое значение 1, если C – массив ячеек, и 0 в противном случае. Это поясняют следующие примеры: >> t=iscell(A) t = 1 >> B=[1 2 3]; >> iscell(B) ans = 0 Функции преобразования типов данных При обработке сложных данных возникает необходимость в преобразовании их типов. Ниже представлены такие функции, имеющие отношение к массивам ячеек: • num2cell(A) преобразует массив чисел A в массив ячеек и возвращает последний. Возвращаемый массив имеет тот же размер, что и исходный массив A; • num2cell(A,DIM) преобразует массив чисел A в массив ячеек, помещая в отдельные ячейки фрагменты, соответствующим разным значениям индекса вдоль измерения, указанного параметром DIM. Примеры применения данной функции: >> A=[1 2; 3 4; 5 6] A = 1 2 3 4 5 6 >> num2cell(A,2) ans = [1x2 double] [1x2 double] [1x2 double] >> num2cell(A,[1 2]) ans = [3x2 double] • cell2struct(C,FIELDS,DIM) преобразует массив ячеек C в массив структур вдоль размерности DIM, сохраняя размер массива C по этой размерности в записи структуры. Размерность 1 – столбцы. Размерность 2 – строки. Пример преобразования: >> C={'Привет!',123,2+3i} C = 'Привет!' [123] [2.0000+ 3.0000i] >> f={'name','number','complex'}; >> S=cell2struct(C,f,2) S = name: 'Привет!' number: 123 complex: 2.0000+ 3.0000i • struct2cell(S) преобразует массив структур S размером m х n, в котором содержатся p полей, в массив ячеек, так что возвращаемый массив будет иметь размер p х m х n. Если массив записей многомерный, то возвращаемый массив будет иметь размер, равный [p size(S)]. Пример такого преобразования приводится ниже: >> C=struct2cell(S) C = 'Привет!' [ 123] [2.0000 + 3.0000i]
Многомерные массивы ячеек Создание многомерных массивов ячеек С помощью функции cat можно формировать многомерные массивы ячеек. Например, трехмерный массив C формируется следующим образом (m-файл с именем ce2.m): A{1,1}='Курить вредно!'; A{1,2}=[1 2;3 4]; A{2,1}=2+3i;A{2,2}=0:0.1:1; B{1,1}='Пить тоже вредно!'; B{1,2}=[1 2 3 4]; B{2,1}=2; B{2,2}=2*pi; C=cat(3,A,B); Теперь можно просмотреть данный массив, имеющий две страницы: >> ce2 >> C C(:,:,1) = 'Курить вредно!' [2x2 double] [2.0000+ 3.0000i] [1x11 double] C(:,:,2) = 'Пить тоже вредно!' [1x4 double] [ 2] [ 6.2832] Этот многомерный массив можно просмотреть с помощью команды cellplot(С). Полученный результат показан на рис. 2, где многомерный массив отображается как стопка страниц. Рис. 2. Отображение трехмерного массива ячеек командой cellplot
Доступ к ячейкам многомерных массивов очевиден и поясняется следующими примерами: >> C(1,1,1) ans = 'Курить вредно!' >> C(1,1,2)+ ans = 'Пить тоже вредно!'
Вложенные массивы ячеек Содержимым ячейки массива ячеек может быть, в свою очередь, произвольный массив ячеек. Таким образом, возможно создание вложенных массивов ячеек – пожалуй, самого сложного типа данных. В следующем примере показано формирование массива ячеек A с вложенным в него массивом B (он был создан в примере выше): >> clear A; >> A(1,1)={{magic(3),{'Hello!'}}}; >> A(1,2)={B}; >> A ans = {1x2 cell} {2x2 cell} >> A{1} ans = [3x3 double] {1x1 cell} >> A{2} ans = 'Пить тоже вредно!' [1x4 double] [ 2] [ 6.2832] >> cellplot(A) На рис. 3 показано отображение массива A с вложенным в него массивом B. В данном случае вложенный массив отображается полностью как часть массива A.
Рис. 3. Графическое представление массива с вложенным в него другим массивом Урок 6
|
||||
Последнее изменение этой страницы: 2016-04-23; просмотров: 335; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.233.15 (0.005 с.) |