Документация
В MATLAB® существует три первичных подхода к доступу к элементам массива на основе их местоположения (индекс) в массиве. Эти подходы индексируют положением, линейной индексацией и логической индексацией.
Индексация с положениями элемента
Наиболее распространенный способ состоит в том, чтобы явным образом задать индексы элементов. Например, чтобы получить доступ к одному элементу матрицы, задайте номер строки, сопровождаемый номером столбца элемента.
e элемент в 3,2 положениях (третья строка, второй столбец) A .
Можно также сослаться на несколько элементов за один раз путем определения их индексов в векторе. Например, получите доступ к первым и третьим элементам второй строки A .
К элементам доступа в области значений строк или столбцов, используйте colon . Например, получите доступ к элементам в первом через третью строку и втором через четвертый столбец A .
Альтернативный способ вычислить r должен использовать ключевое слово end задавать второй столбец через последний столбец. Этот подход позволяет вам задать последний столбец, не зная точно, сколько столбцов находится в A .
Если вы хотите получить доступ ко всем строкам или столбцам, используйте оператор двоеточия отдельно. Например, возвратите целый третий столбец A .
В общем случае можно использовать индексацию, чтобы получить доступ к элементам любого массива в MATLAB независимо от его типа данных или размерностей. Например, непосредственно получите доступ к столбцу datetime массив.
Для более многомерных массивов расширьте синтаксис, чтобы совпадать с измерениями массива. Рассмотрите случайные 3 3х3 числовым массивом. Доступ к элементу во второй строке, третьем столбце и первом листе массива.
Для получения дополнительной информации о работе с многомерными массивами смотрите Многомерные массивы.
Индексация с одним индексом
Другой метод для доступа к элементам массива должен использовать только один индекс, независимо от размера или размерностей массива. Этот метод известен как линейную индексацию . В то время как MATLAB отображает массивы согласно их заданным размерам и формам, они на самом деле хранятся в памяти как отдельный столбец элементов. Хороший способ визуализировать эту концепцию с матрицей. В то время как следующий массив отображен как 3х3 матрица, MATLAB хранит его как отдельный столбец, составленный из столбцов A добавленный один за другим. Сохраненный вектор содержит последовательность элементов 12 , 45 , 33 , 36 , 29 , 25 , 91 , 48 , 11 , и может быть отображен с помощью одного двоеточия.
Например, 3,2 элемента A 25 , и можно получить доступ к нему с помощью синтаксиса A(3,2) . Можно также получить доступ к этому элементу с помощью синтаксиса A(6) , начиная с 25 шестой элемент сохраненной векторной последовательности.
В то время как линейная индексация может быть менее интуитивной визуально, это может быть мощно для выполнения определенных расчетов, которые не зависят от размера или формы массива. Например, можно легко суммировать все элементы A не имея необходимость предоставлять второй аргумент sum функция.
sub2ind и ind2sub функции помогают преобразовать между индексами исходного массива и их линейной версией. Например, вычислите линейный индекс 3,2 элементов A .
Преобразуйте от линейного индекса назад к его форме строки и столбца.
Индексация с логическими значениями
Используя истинные и ложные логические индикаторы другой полезный способ индексировать в массивы, особенно при работе с условными операторами. Например, скажите, что вы хотите знать если элементы матричного A меньше соответствующих элементов другого матричного B . Меньше оператор возвращает логический массив, элементами которого является 1 когда элемент в A меньше, чем соответствующий элемент в B .
Теперь, когда вы знаете местоположения элементов, удовлетворяющих условию, можно смотреть отдельные значения с помощью ind как массив индекса. MATLAB совпадает с местоположениями значения 1 в ind к соответствующим элементам A и B , и перечисляет их значения в вектор-столбце.
MATLAB «является» функциями, также возвращают логические массивы, которые указывают, какие элементы входа соответствуют определенному условию. Например, проверяйте который элементы string вектор избегает использовать ismissing функция.
Предположим, что вы хотите найти значения элементов, которые не отсутствуют. Используйте
оператор с вектором индекса ind сделать это.
Для большего количества примеров, использующих логическую индексацию, смотрите, Находят Элементы массива, Которые Удовлетворяют Условию.
Похожие темы
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
© 1994-2021 The MathWorks, Inc.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Источник
Курсач2. Пояснительная записка к курсовому проекту по дисциплине Теория экономических информационных систем
Название | Пояснительная записка к курсовому проекту по дисциплине Теория экономических информационных систем |
Дата | 10.04.2018 |
Размер | 0.57 Mb. |
Формат файла | |
Имя файла | Курсач2.doc |
Тип | Пояснительная записка #40856 |
страница | 6 из 7 |
Задание 6: Построить упорядоченное бинарное дерево с определенными значениями ключевых признаков и подравнять его. Сформируем бинарное дерево по вышеизложенному алгоритму, используя следующие значения ключевых признаков: 56, 46, 39, 76, 49, 97, 75, 39, 8, 59, 36, 80, 15, 46, 61 (рисунок 3.4). 56 Рис. 3.4 – Формирование древовидной организации данных Назовем длиной ветви дерева разность между максимальным уровнем вершин этой ветви и уровнем вершины, определяющей ветвь. Бинарное дерево называется подравненным, если у каждой его вершины длина левой ветви отличается от длины правой не более, чем на единицу. Такие деревья называются подравненными по длине. Преобразование произвольного бинарного дерева в подравненное основано на понятии соседней записи. Соседняя слева запись – это запись с ключом, который непосредственно меньше ключа данной записи, а ключ соседней справа записи равен или непосредственно больше, чем ключ данной записи. Чтобы перейти от произвольного дерева к подравненному, надо для каждой несбалансированнойзаписи (у которой разница длин ветвей больше единицы) выполнить ряд преобразований. После таких преобразований разнится длин должна сократиться. Наиболее сложно подравнивать полные записи. Для этого сначала выбирается соседняя запись с большей длиной ветви. Эта соседняя запись, со всеми выходящими из нее записями помещается на место подравниваемой. Далее вторая соседняя запись вместе с исходящими из нее записями исключается из дерева и заново перераспределяется в дерево по алгоритму включения новой записи. В последнюю очередь перераспределяется подравниваемая запись. Описанные действия производятся со всеми записями, нарушающими подравненность.
Рис. 3.5 – Первая итерация подравнивания дерева
Рис 3.6 – Вторая итерация подравнивания дерева Рис. 3.7 – Третья итерация подравнивания дерева Рис. 3.8 – Четвертая итерация подравнивания дерева Задание 7: Поставить в вершинах бинарного дерева ключевые признаки от 1 до 12 так, чтобы дерево стало упорядоченным (подравнивать не надо). Исходное дерево изображено на рисунке 3.10. Как видим здесь имеется ошибка, т. к. получается, что элемент n одновременно больше и меньше элемента f. Если в правой ветви вместо него подставить другой элемент, например d, то решением головоломки может быть дерево, изображенное на рисунке 3.11. Р Рис. 3.10 – Головоломка Рис. 3.11 – Решение головоломки с учетом замены элемента n в правой ветви на элемент d Структура списка выражается формулой, в которой записи помечаются буквами, а списки заключаются в круглые скобки. Список, включенный в другой список, называется подсписком. Введенный аппарат списков намного шире, чем требуемый для представления деревьев. Он используется самостоятельно также в задачах искусственного интеллекта и анализа текстовой информации. Записи, входящие в список, могут занимать произвольный участок в памяти компьютера. Адреса связи, принадлежащие каждой записи, образуют звено связи. В звене однонаправленного списка два адреса: первыйуказывает на следующий элемент списка, второй – на подсписок или запись. Списковые структуры данных могут иметь два вида представления: с помощью аналитической записи и графической интерпретация структуры списка. Аналитическая запись списковой структуры строится по следующим правилам:
При определении структуры списка внешние скобки всегда отбрасываются, а далее каждой открытой скобке находится соответствующая ей закрытая скобка. Элементы, заключенные в скобки являются подсписками и объявляются сложными элементами. Элементы, обозначенные буквами называются простыми. (((b, a), (b, ((a, (b)), (a, (b))), (b, a))), b).
Г Рис. 3.12 – Нелинейный список в памяти компьютера Для задания однонаправленной списковой структуры необходима следующая ассоциативная информация:
Последовательная, списковая и бинарная организация данных предназначены для решения общей задачи – обработке записей с одним ключевым атрибутом. Возможность определения места хранения данных используется также при размещении данных согласно адресной функции. Упорядоченность записей по значениям ключа в этом случае, вообще говоря, не соблюдается. Адресной функцией называется зависимость Адресная функция может вырабатывать одинаковые значения i для значений ключей, принадлежащих разным записям, которые в данном случае называются синонимами. К адресной функции предъявляются следующие требования:
Простейшая адресная функция имеет вид i = A – c, где с – константа. Необходимо определить минимальное значение ключевого атрибута Аmin и максимальное значение Аmax. Тогда с = Аmin – 1. Необходимый участок памяти данных должен иметь размер [Amax – Amin + 1] запись. Записи-синонимы связываются в цепочки с помощью адресов связи, они занимают дополнительную (резервную) память. Недостатком данной адресной функции является большой объем используемой памяти, если Amax – Amin много больше, чем количество записей М исходного массива. Задание 9: Построить адресную функцию вида i = A – c. Значения ключей следующие: 65, 72, 73, 66, 69, 76, 74, 81, 78, 77, 63, 74, 69, 73, 64, 77, 75. c = Amin –1 = 63 –1 = 62, n = [Amax – Amin +1] = 81 – 63 + 1 = 19. Источник |