mappoint

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

Описание

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

пример

p = mappoint(x,y,Name,Value) создает mappoint вектор, затем добавляет динамические свойства в mappoint вектор с помощью NameЗначение пары аргумента. Можно задать несколько аргументов пары "имя-значение" в любом порядке как 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Значение пара или после конструкции с помощью точки (.) обозначение. Это похоже на добавление динамических полей к структуре. Для примера добавляющих свойств 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]

Задайте x и y координаты. Используйте их, чтобы создать 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'месяцденьчасминута.

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 хранятся как векторы-строки.

Больше о

развернуть все

Советы

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

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

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

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

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

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

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

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

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

Функции

Объекты

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