Создать массив данных Geostruct в Matlab - PullRequest
1 голос
/ 21 июля 2011

Сейчас я создаю mapstructs в Matlab, а затем экспортирую их по отдельности в виде файлов форм с помощью функции shapewrite ().

Однако вместо того, чтобы экспортировать их по отдельности, я хочу сохранить их все в массив, а затем сохранить в конце как один шейп-файл, который содержит все точки из картографических структур, хранящихся в массиве.

Моя проблема в том, что я не знаю, как инициализировать массив для хранения этих mapstructs.Я пробовал

`a = struct(sizeofarray)`

, но он не совместим с mapstructs.Буду признателен за любую помощь!

Ответы [ 2 ]

2 голосов
/ 21 июля 2011

Вы можете хранить любые данные в массиве :

a = cell(sizeofarray,1);

Затем вы можете назначить их так:

a{1} = firstmapstruct;
a{2} = secondmapstruct;

Однако, если я вас правильно понимаю, у вас есть mapstructs из MATLAB Mapping Toolbox и вы хотите объединить структуры этой формы:

firstmapstruct = 
609x1 struct array with fields:
    Geometry
    BoundingBox
    X
    Y
    STREETNAME
    RT_NUMBER
    CLASS
    ADMIN_TYPE
    LENGTH

Так что вы, вероятно, должны сделать

a = firstmapstruct; 
a(end+1:end+numel(secondmapstruct))= secondmapstruct; 

и так далее ...

1 голос
/ 21 июля 2011

Если все ваши отдельные картографические объекты имеют одинаковые поля, вы сможете инициализировать структурный массив, реплицируя один из ваших картографических объектов с помощью функции REPMAT :

a = repmat(mapstruct1,1,N);  %# A 1-by-N structure array

Тогдапросто заполните каждый элемент по мере необходимости:

a(2) = mapstruct2;  %# Assign another mapstruct to the second array element
a(3).X = ...;       %# Assign a value to the X field of the third element
a(3).Y = ...;       %# Assign a value to the Y field of the third element

Более подробную информацию о структурах географических данных можно найти в этой документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...