2015-10-12 2 views
0

У меня есть следующий массив k, определенный как структурный массив координат, то есть k = {{x1, y1}, {x2, y2}}. Если я хотел бы добавить еще одну координату в этот массив структур, какие обозначения я бы использовал? псевдокод будет k = k + {x3, y3}, и результат будет {{x1, y1}, {x2, y2}, {x3, y3}}. Как кодер Python, у меня проблемы с синтаксисом Matlab.Simple: Как я могу конкатенировать больше элементов массивов struct в Matlab?

Благодаря

ответ

0

Предположим, что у вас есть структура, которая уже содержит x и y координат и у вас есть мастер-структуру, содержащую ваши другие координаты, которые есть в вашем случае k. Вот пример структуры, которая содержит две точки, где каждая структура имеет два поля: x и y:

k(1).x = 10; 
k(1).y = 20; 
k(2).x = 20; 
k(2).y = 30; 

Если у вас есть еще один момент:

pt.x = 40; 
pt.y = 50; 

... конкатенировать эту точку на вашей структуре k , это просто:

k = [k pt]; 

Это наиболее распространенный способ объединения структуры в больший список структурных объектов эс.


В качестве доказательства, давайте посмотрим на x и y координат до и после конкатенации:

>> xvals = [k.x] 

xvals = 

    10 20 

>> yvals = [k.y] 

yvals = 

    20 30 

>> pt.x = 40; 
>> pt.y = 50; 
>> k = [k pt]; 
>> xvals = [k.x] 

xvals = 

    10 20 40 

>> yvals = [k.y] 

yvals = 

    20 30 50 
0

С вашей записи вы создали массив ячеек, содержащий клетки. Это отличается от структуры в Matlab. Если вы хотите придерживаться клеточных массивов вы можете добавить треть

k(end+1) = {x3,y3} 

Для структур в MatLab @rayryeng просто ответил.

 Смежные вопросы

  • Нет связанных вопросов^_^