mappoint

Плоский вектор точки

Описание

Вектор madboint является контейнерным объектом, который содержит плоские координаты и атрибуты точек. Точки связаны, так что размер x - и y - массивов координат всегда равен и соответствует размеру любых динамически добавленных массивов атрибутов. Каждая запись пары координат и связанных атрибутов, если таковая имеется, представляет дискретный элемент в векторе mappoint.

Создание

Описание

пример

p = mappoint() создает пустой вектор mappoint, p, с этими настройками свойств по умолчанию:

p = 

 0x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: []
           Y: []

пример

p = mappoint(x,y) создает новый вектор madboint и присваивает X и Y свойства к входам числового массива, x и y.

пример

p = mappoint(x,y,Name,Value) создает вектор madboint, затем добавляет динамические свойства к вектору madboint с помощью Name, Value аргументные пары. Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

пример

p = mappoint(structArray) создает новую mappoint вектор, назначение полей массива структур, structArray, как динамические свойства. Значения полей в structArray которые не являются числовыми значениями, строковым скаляромстроковыми массивами, векторами символов или массивами ячеек с числовыми значениями или векторами символов, игнорируются.

пример

p = mappoint(x,y,structArray) создает новую mappoint вектор, устанавливает X и Y свойства, равные числовым массивам x и y, и устанавливает динамические свойства из значений полей structArray.

Свойства

расширить все

Каждый элемент в преобразованном векторе рассматривается как функция. Для получения дополнительной информации о типах свойств в mappoint, см. Набор Свойств и Функции Свойств.

Динамические свойства являются новыми возможностями, которые добавляются к вектору mappoint и применяются к каждой отдельной функции в векторе mappoint. Можно присоединить динамические свойства Feature к объекту преобразования во время конструкции с помощью Name, Value пара или после конструкции с помощью точки (.) обозначение. Это аналогично добавлению динамических полей в структуру. Пример динамического добавления свойств функции см. в разделе «Конструкция вектора сопоставления для нескольких функций» и «Изучение автоматизации».

Тип геометрии, заданный как 'point'. Для mappoint, Geometry всегда 'point'.

Типы данных: char | string

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

  • Если Metadata предоставляется как динамическое свойство Name в конструкторе и соответствующих Value является скалярной структурой, тогда Value копируется в Metadata свойство. В противном случае выдается ошибка.

  • Если a Metadata поле обеспечивается structArray, и то и другое Metadata и structArray являются скалярными структурами, тогда Metadata значение поля копируется в Metadata значение свойства. Если structArray является скаляром, но Metadata поле не является структурой, тогда выдается ошибка. Если structArray не скаляром, тогда Metadata поле игнорируется.

Типы данных: struct

Плоский x -координат, заданный как числовая строка или вектор-столбец.

Типы данных: double | single

Плоский y -координатный, задается как числовой вектор-столбец.

Типы данных: double | single

Функции объекта

append Добавьте функции к географическому или плоскому вектору
catКонкатенация географического или планарного вектора
dispОтобразите географический или плоский вектор
fieldnamesВозвращает динамические имена свойства географического или планарного вектора
isemptyОпределите, является ли географический или планарный вектор пустым
isfieldОпределите, существует ли динамическое свойство в географическом или планарном векторе
ispropОпределите, существует ли свойство в географическом или планарном векторе
length Возвращает количество элементов в географическом или плоском векторе
propertiesВозвращает имена свойства географического или планарного вектора
rmfieldУдалите динамическое свойство из географического или планарного вектора
rmpropУдалите свойство из географического или планарного вектора
sizeВозвращенный размер географического или планарного вектора
struct Преобразуйте географический или планарный вектор в скалярную структуру
vertcatВертикально конкатенируйте географические или плоские векторы

Примеры

свернуть все

Динамически установите X и Y значения свойств и динамически добавлять свойство Vertex Z.

p = mappoint();
p.X = 1:3;
p.Y = 1:3;
p.Z = [10 10 10]
p = 

 3x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1 2 3]
           Y: [1 2 3]
           Z: [10 10 10]

Определите x и y координаты. Используйте их для создания точки преобразования.

x = [40 50 60];
y = [10, 11, 12];
p = mappoint(x, y)
p = 

 3x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [40 50 60]
           Y: [10 11 12]
x = 41:43;
y = 1:3;
temperature = 61:63;
p = mappoint(x, y, 'Temperature', temperature)
p = 

 3x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: [41 42 43]
              Y: [1 2 3]
    Temperature: [61 62 63]

Создайте массив структур, а затем создайте вектор madpoint, указав массив как вход.

structArray = shaperead('boston_placenames')
p = mappoint(structArray)
structArray = 

13x1 struct array with fields:
    Geometry
    X
    Y
    NAME
    FEATURE
    COORD


p = 

 13x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1x13 double]
           Y: [1x13 double]
        NAME: {1x13 cell}
     FEATURE: {1x13 cell}
       COORD: {1x13 cell
[structArray, A] = shaperead('boston_placenames');
x = [structArray.X];
y = [structArray.Y];
p = mappoint(x, y, A)
p = 

 13x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1x13 double]
           Y: [1x13 double]
        NAME: {1x13 cell}
     FEATURE: {1x13 cell}
       COORD: {1x13 cell}

В этом примере показано, как добавить одну функцию к пустому вектору сопоставления после конструкции.

x = 1;
y = 1;
p = mappoint(x, y)
p = 

 1x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: 1
           Y: 1

Добавьте динамическое свойство Feature со значением вектора символов.

p.FeatureName = 'My Feature'
p = 

 1x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: 1
              Y: 1
    FeatureName: 'My Feature'

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

Создайте вектор madboint.

x = [1 2];
y = [10 10];
p = mappoint(x,y)
p = 

 2x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1 2]
           Y: [10 10]

Добавьте динамическое свойство Feature.

p.FeatureName = {'Feature 1','Feature 2'}
p = 

 2x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: [1 2]
              Y: [10 10]
    FeatureName: {'Feature 1' 'Feature 2'}

Добавьте числовое динамическое свойство Feature.

p.ID = [1 2]
p = 

 2x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: [1 2]
              Y: [10 10]
    FeatureName: {'Feature 1' 'Feature 2'}
             ID: [1 2]

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

p(3).X = 3
p(3).Y = 10
p = 

 3x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: [1 2 3]
              Y: [10 10 10]
    FeatureName: {'Feature 1' 'Feature 2' ''}
             ID: [1 2 0]

Установите значения для ID динамическое свойство признака с большим количеством значений, чем содержится в X или Y. Все свойства развернуты в соответствии с размером.

p.ID = 1:4
p = 

 4x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: [1 2 3 0]
              Y: [10 10 10 0]
    FeatureName: {'Feature 1' 'Feature 2' '' ''}
             ID: [1 2 3 4]

Установите значения для ID свойство Dynamic Feature с меньшим количеством значений, чем содержится в X или Y. The ID значения свойств расширяются, чтобы соответствовать длине X и Y.

p.ID = 1:2
p = 

 4x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: [1 2 3 0]
              Y: [10 10 10 0]
    FeatureName: {'Feature 1' 'Feature 2' '' ''}
             ID: [1 2 0 0]

Установите значения любого свойства координат (X или Y) с меньшим количеством значений. Все свойства уменьшаются в размере, чтобы соответствовать новой длине.

p.X = 1:2
p = 

 2x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: [1 2]
              Y: [10 10]
    FeatureName: {'Feature 1' 'Feature 2'}
             ID: [1 2]

Удалите FeatureName свойство путем установки его значения [].

p.FeatureName = []
p = 

 2x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1 2]
           Y: [10 10]
          ID: [1 2]

Удалите все динамические свойства и установите объект в пустое положение путем установки значения свойства координат [].

p.X = []
 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: []
           Y: []

В этом примере показано, как включить несколько динамические функции во время конструкции объекта.

point = mappoint([42 44],[10, 11],'Temperature',[63 65], ...
   'TemperatureUnits','Fahrenheit')
point = 

 2x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: [42 44]
              Y: [10 11]
    Temperature: [63 65]
TemperatureUnits: 'Fahrenheit'

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

Загрузка данных из seamount MAT-файл и создайте вектор madboint, чтобы сохранить координаты.

seamount = load('seamount');
p = mappoint(seamount.x, seamount.y, 'Z', seamount.z);

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

levels = [unique(floor(seamount.z/1000)) * 1000; 0];
colors = {'red','green','blue','cyan','black'};

Добавление MinLevel и MaxLevel свойство функции для указания самого низкого и самого высокого связанного уровня. Добавьте свойство динамической функции, чтобы указать на z -cordinate. Добавьте свойство dynamic Feature, чтобы указать связанное значение уровня и значение цвета для данного уровня. Включите метаданные из MAT-файла.

for k = 1:length(levels) - 1
   index = levels(k) <= p.Z & p.Z < levels(k+1);
   p(index).MinLevel = levels(k);
   p(index).MaxLevel = levels(k+1) - 1;
   p(index).Color = colors{k};
end

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

p.Metadata.Caption = seamount.caption;
p.Metadata
ans = 

    Caption: [1x229 char]

Отобразите данные точки как 2-D график.

figure
minLevels = unique(p.MinLevel);
for k=1:length(minLevels)
  index = p.MinLevel == minLevels(k);
  mapshow(p(index).X, p(index).Y, ...
   'MarkerEdgeColor', p(find(index,1)).Color, ...
   'Marker', 'o', ...
   'DisplayType', 'point')
end
legend(num2str(minLevels'))

Отобразите данные точки как 3-D точечный график.

figure
scatter3(p.X, p.Y, p.Z)

В этом примере показано, как создать вектор mappoint из массива структур и как добавить функции и метаданные к вектору mappoint.

structArray = shaperead('boston_placenames');
p = mappoint();
p.X = [structArray.X];
p.Y = [structArray.Y];
p.Name = {structArray.NAME}
p = 

 13x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1x13 double]
           Y: [1x13 double]
        Name: {1x13 cell}

Создайте вектор madboint из массива структур с помощью синтаксиса конструктора.

filename = 'boston_placenames.shp';
structArray = shaperead(filename);
p = mappoint(structArray)
p = 

 13x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1x13 double]
           Y: [1x13 double]
        NAME: {1x13 cell}
     FEATURE: {1x13 cell}
       COORD: {1x13 cell}

Добавление Filename поле к Metadata структура. Отображение первых пяти точек и Metadata структура.

p.Metadata.Filename = filename;
p(1:5)
p.Metadata
ans = 

 5x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [2.3403e+05 2.3357e+05 2.3574e+05 2.3627e+05 2.3574e+05]
           Y: [900038 9.0019e+05 9.0113e+05 9.0097e+05 9.0036e+05]
        NAME: {1x5 cell}
     FEATURE: {'PPL-SUBDVSN' ' MARSH' ' HILL' ' PPL' ' PENINSULA'}
       COORD: {1x5 cell}

ans = 

    Filename: 'boston_placenames.shp'

В этом примере показано, как добавить функцию к вектору mappoint с помощью линейной индексации.

Присоедините Падерборн, Германия к вектору мировых городов.

p = mappoint(shaperead('worldcities.shp'));
x = 51.715254;
y = 8.75213;
p = append(p, x, y, 'Name', 'Paderborn');
p(end)
ans = 

 1x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: 51.7153
           Y: 8.7521
        Name: 'Paderborn'

Можно также добавить точку в конец вектора mappoint с помощью линейной индексации. Добавьте Арлингтон, Вирджинию в конец вектора.

p(end+1).X = 38.880043;
p(end).Y = -77.196676;
p(end).Name = 'Arlington';
p(end-1:end)
ans = 

 2x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [51.7153 38.8800]
           Y: [8.7521 -77.1967]
        Name: {'Paderborn' 'Arlington'}

% Plot the points
figure
mapshow(p.X, p.Y, 'DisplayType', 'point')

В этом примере показано, как функции могут сортироваться с помощью поведения индексации класса mappoint.

Создайте вектор maspoint и отсортируйте динамические свойства.

p = mappoint(shaperead('tsunamis'));
p = p(:, sort(fieldnames(p)))
p = 

 162x1 mappoint vector with properties:

 Collection properties:
       Geometry: 'point'
       Metadata: [1x1 struct]
 Feature properties:
              X: [1x162 double]
              Y: [1x162 double]
          Cause: {1x162 cell}
     Cause_Code: [1x162 double]
        Country: {1x162 cell}
            Day: [1x162 double]
    Desc_Deaths: [1x162 double]
         Eq_Mag: [1x162 double]
           Hour: [1x162 double]
       Iida_Mag: [1x162 double]
      Intensity: [1x162 double]
       Location: {1x162 cell}
     Max_Height: [1x162 double]
         Minute: [1x162 double]
          Month: [1x162 double]
     Num_Deaths: [1x162 double]
         Second: [1x162 double]
       Val_Code: [1x162 double]
       Validity: {1x162 cell}
           Year: [1x162 double]

Измените вектор maspoint, чтобы он содержал только динамические свойства, 'Year', 'Month', 'Day', 'Hour', 'Minute'.

p = p(:, {'Year', 'Month', 'Day', 'Hour', 'Minute'})
p = 

 162x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1x162 double]
           Y: [1x162 double]
        Year: [1x162 double]
       Month: [1x162 double]
         Day: [1x162 double]
        Hour: [1x162 double]
      Minute: [1x162 double]

Отображение первых пяти элементов.

p(1:5)
ans = 

 5x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [128.3000 -156 157.9500 143.8500 -155]
           Y: [-3.8000 19.5000 -9.0200 42.1500 19.1000]
        Year: [1950 1951 1951 1952 1952]
       Month: [10 8 12 3 3]
         Day: [8 21 22 4 17]
        Hour: [3 10 NaN 1 3]
      Minute: [23 57 NaN 22 58]

Этот пример демонстрирует, что входные параметры x и y может быть либо строкой, либо векторами-столбцами.

Если вы обычно храните x - и y - координатные значения в массиве n -by-2 или 2-by- m, можно назначить объект mascoint этим числовым значениям. Если значения хранятся в массиве n -by-2, то X значения свойств присваиваются первому столбцу и Y значения свойств присваиваются второму столбцу.

x = 1:10;
y = 21:30;
pts = [x' y'];
p = mappoint;
p(1:length(pts)) = pts
p = 

 10x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1 2 3 4 5 6 7 8 9 10]
           Y: [21 22 23 24 25 26 27 28 29 30]

Если значения хранятся в 2-бай- m массиве, то X значения свойств присваиваются первой строке и Y значения свойств присваиваются второй строке.

pts = [x; y];
p(1:length(pts)) = pts
p = 

 10x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1 2 3 4 5 6 7 8 9 10]
           Y: [21 22 23 24 25 26 27 28 29 30]

Заметьте, что в обоих случаях X и Y хранятся как векторы-строки.

Подробнее о

расширить все

Совет

  • Если X, Y, или задается динамическое свойство с большим количеством значений, чем функции в векторе mappoint, затем все другие свойства расширяются в размере, используя 0 для числовых значений и пустой символьный вектор ('') для значений камер.

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

  • Если на X или Y свойство вектора madpoint задается с меньшим количеством значений, чем содержится в объекте, затем все остальные свойства уменьшаются в размере.

  • Если либо X или Y устанавливается на [], затем оба свойства координат устанавливаются на [], и все динамические свойства удаляются.

  • Если для динамического свойства задано значение [], он удаляется из объекта.

  • Вектор madboint может быть индексирован как любой MATLAB® вектор. Вы можете получить доступ к любому элементу вектора, чтобы получить определенную функцию. Следующие примеры демонстрируют такое поведение:

    Добавление точки по индексации

    Сортировка динамических свойств

См. также

Функции

Объекты

Введенный в R2012a