mappoint

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

Описание

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

Создание

Синтаксис

p = mappoint()
p = mappoint(x,y)
p = mappoint(x,y,Name,Value)
p = mappoint(structArray)
p = mappoint(x,y,structArray)

Описание

пример

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) создает новый mappoint вектор и присваивает свойства X и Y входным параметрам числового массива, x и y.

пример

p = mappoint(x,y,Name,Value) создает mappoint вектор, затем добавляет динамические свойства в mappoint вектор с помощью 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, смотрите Collection Properties и Feature Properties.

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

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

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

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

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

  • Если поле 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]

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

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]

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

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}

Этот пример показывает, как добавить одну опцию к пустому mappoint вектору после конструкции.

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'

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

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

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 динамическое свойство Feature с меньшим количеством значений, чем содержавшийся в X или Y. Значения свойств 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'

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

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

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 - координата. Добавьте динамическое свойство 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]

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

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}

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

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 класса.

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

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]

Измените mappoint вектор, чтобы содержать только динамические свойства, '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 m массивом, можно присвоить объект mappoint этим числовым значениям. Если значения хранятся в 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 mappoint вектора установлено с меньшим количеством значений, чем содержавшийся в объекте, то все другое уменьшение свойств в размере.

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

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

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

    Добавьте точку путем индексации

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

Смотрите также

Функции

Объекты

Представленный в R2012a