Присвоить значения полям структуры
02.07.2020
Есть два одинаковых и больших по размеру массива чисел X Y.
X = [1 3 2 ...]; Y = [4 7 3 ...];
Есть объявленный массив структур pp.X = []; pp.Y = [];
Необходимо БЫСТРО присвоить полям структуры рр значения X и Y так, чтобы получилось:
pp(1).X = 1; pp(1).Y = 4;
pp(2).X = 3; pp(2).Y = 7;
pp(3).X = 2; pp(3).Y = 3;
...................................
Присваивание через for работает медленно
Лучший ответ
Кстати, вот так можно
pp=struct('X',num2cell(X),'Y',num2cell(Y))
Ответы
Зачем использовать структуры для однородных данных - не совсем понятно.
Но можно попробовать num2cell, а затем cell2ctruct. Вдруг что получится путное.
Кстати, вот так можно
pp=struct('X',num2cell(X),'Y',num2cell(Y))
alextip, спасибо! все работает!
- Зачем использовать структуры для однородных данных - не совсем понятно.
Это точки в пространстве, которые проецируются на плоскость, преобразуются...
Ну так продолжай хранить абсциссы в массиве Х, ординаты в массиве Y. Можно также попарно поместить абсциссы и ординаты в массив ячеек, в каждой ячейке хранить пару координат.
Можно и таблицу создать с двумя столбцами Х и Y.
Конечно. Можно и так. Это все вообще-то мелочь. Главное задачу решить. Если интересно задача такая: таблетки двух цветные, половина синяя, половина желтая, например. Таблетки падают и снимаются камерой. Нужен алгоритм для определения стандартности таблетки по двум цветам. Ясно что таблетки бывают любых цветов и их оттенков. Перевод из RGB в др. цветовые пространства приводит к потере в исходных данных. Поэтому различать лучше всего на RGB.