У меня есть три вектора centers, radiuses, metrics
все Nx1 (centers
- Nx2, но это не проблема). И я хочу преобразовать их в вектор Nx1 структур, где каждая структура имеет поля: center, radius, metric
и соответствующие значения этих полей, например structArray(i).metric == metrics(i)
. Каков наилучший и самый простой способ сделать это?Массивы массива структуры. MATLAB
1
A
ответ
2
Вы можете использовать конструктор struct
непосредственно путем преобразования данных в массивы ячеек.
structArray = struct('center', num2cell(centers,2), ...
'radius', num2cell(radiuses), ...
'metric', num2cell(metrics));
Обратите внимание на использование вход для измерения num2cell
, чтобы преобразовать переменную centers
в NX1 массив 1х2 клеток.
Если мы попытаемся это с какой-то пример данных:
radiuses = rand(3,1);
metrics = rand(3,1);
centers = rand(3,2);
structArray = struct('center', num2cell(centers,2), ...
'radius', num2cell(radiuses), ...
'metric', num2cell(metrics));
structArray =
3x1 struct array with fields:
center
radius
metric
1
Используйте следующее:
S = struct('centers', num2cell(centers), 'radiuses', num2cell(radiuses), ...
'metrics', num2cell(metrics));
Примечание, что накладные расходы (с точки зрения потребления памяти) такого подхода очень высока. Если ваши массивы CENTERS, RADIUSES и METRICS очень велики, лучше использовать «плоскую» схему памяти, т. Е. Хранить массивы в одной структуре:
S = struct;
S.centers = centers;
S.radiuses = radiuses;
S.metrics == metrics;
Смежные вопросы
- 1. Сохранение и загрузка массива структуры MATLAB
- 2. Сортировка массива структуры с элементами как массивы
- 3. Массивы, структуры, функции
- 4. указатель на массивы структуры
- 5. Инициализация карты MATLAB из массива структуры
- 6. Запрос переменной из массива структуры MATLAB
- 7. Matlab: значение изменения поля структуры внутри массива
- 8. Массивы в MATLAB
- 9. Matlab структура массивы рассматриваются как векторы
- 10. Как массивы работают внутри структуры?
- 11. Как удалить структуры из массива Matlab для определенных значений struct.field
- 12. Структуры и массивы
- 13. C Структуры и массивы
- 14. массивы структуры в C#
- 15. Структуры и массивы VendingMachine
- 16. Массивы и структуры
- 17. C в Массивы Структуры
- 18. Вложенные структуры/массивы инициализации
- 19. структуры, функции и массивы
- 20. Определение структуры и массивы
- 21. Сортировка Структуры и Массивы
- 22. C++ структуры/массивы
- 23. Фильтрация Массивы/Векторы в Matlab
- 24. Назначение структуры массиву структуры в MATLAB
- 25. Пользовательские сортировочные массивы в Matlab
- 26. массива внутри структуры
- 27. Matlab - массив структуры структуры без цикла
- 28. Соединить массивы данных в MATLAB
- 29. Преобразование структуры/массива массивов в один массив в Matlab
- 30. Структуры и массивы (слишком много Инициализаторов для «массива»)