mappoint

平面点向量

描述

mappoint vector是一个容器对象,包含平面点坐标和属性。这些点是耦合的,这样的尺寸x- - -y-coordinate数组总是相等的,并匹配任何动态添加的属性数组的大小。坐标对和相关属性的每个条目(如果有的话)表示mappoint向量中的一个离散元素。

创建

描述

例子

P = mappoint()构造一个空mappoint向量,p,使用以下默认属性设置:

p = 0x1 mappoint vector with properties: Collection properties: Geometry: 'point'元数据:[1x1 struct]特征属性:X: [] Y: []

例子

P = mappoint(xy构造一个新的mappoint向量并将X而且Y属性的数值数组输入,x而且y

例子

P = mappoint(xy名称,值构造一个mappoint向量,然后将动态属性添加到mappoint向量的名字价值参数对。可以以任意顺序指定多个名值对参数Name1, Value1,…,的家

例子

P = mappoint(structArray构造一个新的mappoint向量,赋值结构数组的字段,structArray,如动态属性。中的字段值structArray非数值、字符串标量、字符串数组、字符向量或数值或字符向量的单元格数组将被忽略。

例子

P = mappoint(xystructArray构造一个新的mappoint向量,设置X而且Y属性等于数值数组x而且y的字段值设置动态属性structArray

属性

全部展开

mappoint向量中的每个元素都被认为是一个特征。中属性类型的详细信息mappoint,请参阅属性集合而且功能属性

动态属性是添加到mappoint向量并应用于mappoint向量中的每个单独特征的新特征。类构造过程中,可以将动态特性属性附加到mappoint对象的名字价值Pair或after结构使用dot ()符号。这类似于向结构中添加动态字段。有关动态添加Feature属性的示例,请参见为多个特征构造Mappoint向量并检查自动缩放

几何图形的类型,指定为“点”.为mappoint几何总是“点”

数据类型:字符|字符串

作为标量结构指定的整个mappoint向量元素集的信息。可以向结构中添加任何数据类型。

  • 如果元数据是否作为动态属性提供的名字构造函数中,以及相应的价值那么是标量结构吗价值复制到元数据财产。否则,将发出错误。

  • 如果一个元数据字段由structArray,两者都有元数据而且structArray是标量结构,那么元数据字段值被复制到元数据属性值。如果structArray是标量,但元数据字段不是结构,则会发出错误。如果structArray不是标量,那么元数据字段被忽略。

数据类型:结构体

平面x-coordinate,指定为数字行或列向量。

数据类型:|

平面y-coordinates,指定为数字行或列向量。

数据类型:|

对象的功能

附加 附加特征到地理或平面向量
连接地理或平面向量
disp 显示地理或平面矢量
字段名 返回地理或平面向量的动态属性名称
isempty 确定地理或平面向量是否为空
isfield 确定在地理或平面矢量中是否存在动态特性
isprop 确定属性是否存在于地理或平面向量中
长度 返回地理或平面向量中的元素个数
属性 返回地理或平面向量的属性名称
rmfield 从地理或平面矢量删除动态属性
rmprop 从地理或平面向量中删除属性
大小 返回地理或平面向量的大小
结构体 将地理或平面向量转换为标量结构
vertcat 垂直连接地理或平面向量

例子

全部折叠

动态设置X而且Y属性值,并动态添加Vertex属性Z

P = mappoint();p.X = 1:3;p.Y = 1:3;p.Z = [10 10 10]
集合属性:Geometry: 'point'元数据:[1x1 struct]特征属性: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)
集合属性:Geometry: 'point'元数据:[1x1 struct]特征属性:X: [40 50 60] Y: [10 11 12]
X = 41:43;Y = 1:3;温度= 61:63;P = mappoint(x, y,“温度”、温度)
集合属性:Geometry: 'point'元数据:[1x1 struct]特征属性:X: [41 42 43] Y:[1 2 3]温度:[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'元数据:[1x1 struct] FEATURE属性: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具有属性:集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:X: [1x13 double] Y: [1x13 double] NAME: {1x13 cell} Feature: {1x13 cell} COORD: {1x13 cell}

这个例子展示了如何在构建后向空mappoint向量添加单个特征。

X = 1;Y = 1;P = mappoint(x, y)
集合属性:Geometry: 'point'元数据:[1x1 struct]特征属性:X: 1 Y: 1

添加具有字符向量值的动态Feature属性。

p.FeatureName =“我的特性”
集合属性:Geometry: 'point'元数据:[1x1 struct]特征属性:X: 1 Y: 1 FeatureName: 'My Feature'

这个例子展示了mappoint vector如何自动调整所有属性的长度,以确保在添加新的动态属性或追加或缩短现有属性时,它们的大小相等。

创建一个mappoint向量。

X = [1 2];Y = [10 10];P = mappoint(x,y)
集合属性:Geometry: 'point'元数据:[1x1 struct]特征属性:X: [1 2] Y: [10 10]

添加一个动态特性属性。

p.f uturename = {“功能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'}

添加数值动态特性属性。

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]

添加第三个功能。所有属性都是自动调整的,以便所有向量的长度都匹配。

(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特性动态属性的值比所包含的值多XY.所有属性都展开以匹配大小。

p.ID = 1:4
p = 4x1 mappoint vector with properties: Collection properties: Geometry: 'point'元数据:[1x1 struct] Feature properties: X: [1 2 3 0] Y: [10 10 10 10 0] FeatureName: {'Feature 1' 'Feature 2' '' ''} ID: [1 2 3 4]

的值ID动态特性属性的值少于所包含的值XY.的ID属性值扩展以匹配的长度X而且Y

p.ID = 1:2
p = 4x1 mappoint vector with properties: Collection properties: Geometry: 'point'元数据:[1x1 struct] Feature properties: X: [1 2 3 0] Y: [10 10 10 10 0] FeatureName: {'Feature 1' 'Feature 2' '' ''} ID: [1 2 0 0]

设置坐标属性的值(XY)使用更少的值。所有属性的大小都会缩小以匹配新的长度。

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.f uturename = []
元数据:[1x1 struct]特征属性:X: [1 2] Y: [10 10] ID: [1 2]

删除所有动态属性,并通过将坐标属性值设置为[]将对象设置为空。

p.X = []
集合属性:几何:'point'元数据:[1x1 struct]特征属性:X: [] Y: []

这个例子展示了如何在对象构造过程中包含多个动态特性。

点= mappoint([42 44],[10, 11],“温度”(63 65),...“TemperatureUnits”“华”
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:X: [42 44] Y:[10 11]温度:[63 65]TemperatureUnits: 'Fahrenheit'

此示例演示如何使用来自包含海洋深度的mat文件的数据构造mappoint向量。

从海山mat文件加载数据,并构造一个mappoint矢量来保存坐标。

海底山=负荷(“海底山”);P = mappoint(海山;x seamount.y“Z”, seamount.z);

创建一个关卡列表用于binz值,并为每个级别创建一个颜色值列表。

Levels = [unique(floor(semount .z/1000)) * 1000;0);颜色= {“红色”“绿色”“蓝”“青色”“黑”};

添加一个MinLevel而且MaxLevel属性来指示最低和最高的分类级别。添加一个动态特性属性来指示z协调。为给定的关卡添加一个动态特征属性来指示一个分类的关卡值和一个颜色值。包括来自mat文件的元数据信息。

k = 1:长度(关卡)- 1索引=关卡(k) <= p.Z & p.Z <关卡(k+1);(索引页)。MinLevel= levels(k); p(index).MaxLevel = levels(k+1) - 1; p(index).Color = colors{k};结束

添加元数据信息。元数据包含整个属性集的信息的标量结构。可以向结构中添加任何类型的数据。

p.Metadata.Caption = semount .caption;p.Metadata
ans =说明:[1x229 char]

将点数据显示为2-D图。

figure minLevels = unique(p.MinLevel);k=1:length(minLevels) index = p.MinLevel == minLevels(k);mapshow (p(索引)。X(索引页)。Y,...“MarkerEdgeColor”p(找到(指数(1))。的颜色,...“标记”“o”...“DisplayType”“点”结束传奇(num2str (minLevels '))

将点数据显示为三维散点图。

图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。名称}
元数据:[1x1 struct]特性属性:X: [1x13 double] Y: [1x13 double]名称:{1x13 cell}

使用构造函数语法从结构数组构造mappoint向量。

文件名=“boston_placenames.shp”;structArray = shaperead(文件名);p = mappoint(structArray)
p = 13x1 mappoint vector具有属性:集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:X: [1x13 double] Y: [1x13 double] NAME: {1x13 cell} Feature: {1x13 cell} COORD: {1x13 cell}

添加一个文件名字段到元数据结构。显示前五个点和元数据结构。

p.Metadata.Filename = filename;p.Metadata p (1:5)
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:X: [2.3403e+05 2.3357e+05 2.3627e+05 2.3574e+05] Y: [900038 9.0019e+05 9.013e +05 9.0097e+05 9.0036e+05] NAME: {1x5 cell} Feature: {' pll - subdvsn ' ' MARSH' ' HILL' 'PPL ' ' PENINSULA'} COORD: {1x5 cell} ans = Filename: ' boston_placnames .shp'

这个例子展示了如何使用线性索引向mappoint向量添加一个特征。

把德国帕德伯恩加到世界城市的向量中。

P = mappoint(shaperead)“worldcities.shp”));X = 51.715254;Y = 8.75213;P = append(P, x, y,“名字”“帕德伯恩”);p(结束)
元数据:[1x1 struct]特性属性:X: 51.7153 Y: 8.7521名称:'Paderborn'

您还可以使用线性索引在mappoint向量的末尾添加一个点。把弗吉尼亚州的阿灵顿市加到向量的末尾。

p(+ 1)结束。X= 38.880043; p(end).Y = -77.196676; p(end).Name =“阿灵顿”;p (end-1:结束)
元数据:[1x1 struct]特性属性:X: [51.7153 38.8800] Y:[8.7521 -77.1967]名称:{'Paderborn' 'Arlington'} %绘制点图mapshow(p。X, p.Y, 'DisplayType', 'point')

这个例子展示了如何通过使用mappoint类的索引行为对特性进行排序。

构造一个mappoint向量,并对其动态属性进行排序。

P = mappoint(shaperead)“海啸”));P = P (:, sort(字段名(P)))
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:X: [1x162双]Y: [1x162双]Cause: {1x162细胞}Cause_Code: [1x162双]Country: {1x162双]Day: [1x162双]Desc_Deaths: [1x162双]Eq_Mag: [1x162双]Hour: [1x162双]Iida_Mag: [1x162双]Location: {1x162细胞}Max_Height: [1x162双]Minute: [1x162双]Month: [1x162双]Num_Deaths:[1x162 double]秒:[1x162 double] Val_Code: [1x162 double]有效性:{1x162 cell}年:[1x162 double]

修改mappoint向量只包含动态属性,“年”“月”“天”“小时”“一分钟”

P = P (:, {“年”“月”“天”“小时”“一分钟”})
元数据:[1x1 struct]特性属性:X: [1x162双]Y: [1x162双]年:[1x162双]月:[1x162双]日:[1x162双]小时:[1x162双]分钟:[1x162双]

显示前五个元素。

p (1:5)
元数据:[1x1 struct]特性属性:X: [128.3000 -156 157.9500 143.8500 -155] Y:[-3.8000 19.5000 -9.0200 42.1500 19.1000]年:[1950 1951 1951 1952 1952]月:[10 8 12 3 3]日:[8 21 22 4 17]小时:[3 3 10 NaN 1 3]分钟:[23 57 NaN 22 58]

这个例子演示了输入参数x而且y可以是行向量也可以是列向量。

如果你通常储存x- - -y的坐标值n-by-2或2-by-数组中,您可以将mappoint对象分配给这些数值。如果值存储在n-by-2数组,然后X属性值被分配给第一列和Y属性值被分配给第二列。

X = 1:10;Y = 21:30;PTS = [x' y'];P = mappoint;P(1:长度(pts)) = pts
元数据:[1x1 struct]特征属性:X: [1 23 4 5 6 7 8 9 10] Y: [21 22 23 24 25 26 27 28 29 30]

如果值存储在2by数组,然后X属性值被分配给第一行和Y属性值被分配给第二行。

PTS = [x;y);P(1:长度(pts)) = pts
元数据:[1x1 struct]特征属性:X: [1 23 4 5 6 7 8 9 10] Y: [21 22 23 24 25 26 27 28 29 30]

注意,在这两种情况下,X而且Y存储为行向量。

更多关于

全部展开

提示

  • 如果XY,或者将动态属性设置为比mappoint向量中的特征值更多的值,那么所有其他属性的大小都将扩展,数值为0,字符向量为空(),以获取单元格值。

  • 如果动态属性设置的值小于特征的数量,则此动态属性将扩展以匹配其他属性的大小,如果值为数值或空字符向量,则插入0 (),如果值是一个单元格数组。

  • 如果XY属性的值设置为小于对象中包含的值,则所有其他属性的大小都会缩小。

  • 如果任何一XY设置为[],则两个坐标属性都设置为[],并删除所有动态属性。

  • 如果一个动态属性被设置为[],那么它将从对象中删除。

  • mappoint向量可以像任何MATLAB一样被索引®向量。您可以访问向量的任何元素以获得特定的特征。下面的例子演示了这种行为:

    通过索引附加一个点

    排序动态属性

另请参阅

功能

对象

在R2012a中介绍