|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
|||||||||||
Найти значения в массиве по индексу из другого вектора12.04.2022, 00:19. Показов 1781. Ответов 18
Здравствуйте.
Хотелось найти значения в массиве или в векторе по индексу значений из другого вектора . Есть массив 60000 строк и 25 столбцов. Для примера ниже две строки. AT=[22,22,22,21,21,21,20,20,20,19,19,19,18,1 8,18,17,17,17,16,15,15,14,12,11,9;22,22, 21,21,21,21,20,20,20,19,19,19,18,18,18,1 7,17,17,16,15,15,14,12,11,9];% он может меняться, входной массив температур Tcm=[36.7044982910156;42.1257324218750;]; % расчетный вектор также 60000 тыс. значений, представлены для примера 2 значения. h=[5.0215898;15.078540;25.160460;35.278290; 45.447762;55.691494;66.041985;76.545914; 87.270287;98.311180;109.80618;121.95190; 135.02855;149.43373;165.72845;184.69746; 207.42545;235.38617;270.53412;315.37408; 372.96545;446.80093;540.50220;657.32294; 799.54962];% постоянные значения Теперь сам вопрос. Надо взять значения Tcm, то есть 36.7 и в векторе h находим ближайшее значение , то есть это 35.27 и его индекс =4. По этому индексу находим в массиве AT - индекс(4) значение -это 21. Вот до этого значения, далее первые 4 значения осреднить., получаем 21.75. Чтобы получился вектор столбец значений средних значений.
так например
0
|
|||||||||||
| 12.04.2022, 00:19 | |
|
Ответы с готовыми решениями:
18
Найти значения в массиве по индексу Как обозначить значения внутри вектора для другого вектора итератором? Найти в массиве значения из другого массива |
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
||||||
| 12.04.2022, 09:18 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
|
| 12.04.2022, 13:34 [ТС] | |
|
Centurio,Спасибо, разбираюсь.
Строка 7 - создается дескриптор анонимной функции , у меня x , переменная такая была в рабочей области, могло повлиять на решение? Так как я AT=[22,22,22,21,21,21,20,20,20,19,19,19,18,1 8,18,17,17,17,16,15,15,14,12,11,9]'; Tcm=[36.7044982910156;42.1257324218750]; меняю и если беру из рабочей области, уже другие, у меня перестает работать код. До 7 строки работает. Далее в массиве ячеек NaN соответственно выход тоже NaN
0
|
|
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
|||
| 12.04.2022, 13:38 | |||
|
Добавлено через 2 минуты Вот у вас АТ состояло из двух одинаковых строк, я для своего кода оставил одну строку. Возможно, у вас другие значения АТ тоже в две строки записаны.
0
|
|||
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
|
| 12.04.2022, 13:47 [ТС] | |
|
AT и Tcm прикрепила.
h- тот же. в данных есть NaN;
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
|
| 12.04.2022, 14:44 [ТС] | |
|
Centurio, K -находит.
Индексы известны. А потом получаются NAN
0
|
|
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
|
| 12.04.2022, 15:17 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
|
| 12.04.2022, 15:32 [ТС] | |
|
Centurio, Так если вместо NaN , будет 9999 или другие константы, то все равно не получится.
0
|
|
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
|
| 12.04.2022, 15:54 | |
|
Юля С, у вас АТ - матрица, какие значения там отбирать? По строкам или столбцам? По всем или только по первым строкам (столбцам)?
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
||||||
| 12.04.2022, 16:21 [ТС] | ||||||
|
Centurio, Чтобы обойти NAN? Уже думаю может добавит к AT столбец , полученный-К.
И уже поэтому критерию отрезать все лишнее и считать среднее
Добавлено через 10 минут Centurio, AT это массив 62280 строк, 25 столбцов. Значение температур в каждой из 62280 точек , на 25 уровнях высоты. Каждому такому столбцу соответствует вектор-столбец Tсm. В нем указано конкретная высота, вычисленная и берется из рабочей области. А h- фиксированная, стандартная высота. Нужно найти соответствие Tcm , допустим значение 44.23 в h? это число 454478, а его позиция или индекс 5. Находим в АТ 5 столбец и его число, и считаем среднее этих 5 столбцов. В Итоге получаем вектор столбец значений(62280) средней температуры . Чуть более подробнее написала. Добавлено через 2 минуты Centurio, найти таким образом среднюю температуру слоя в каждой точке. Добавлено через 9 минут Centurio, K=[5 4 5 6 8 6 8 6 8 6 8 6.....end] 1*62280 double;
0
|
||||||
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
||||||
| 13.04.2022, 08:14 | ||||||
|
Юля С, код сильно не поменяется.
Ещё неплохо убрать строки, полностью состоящие из NaN, чтобы уменьшить объём занимаемой памяти и ускорить вычисления. Всё равно эти строки будут игнорироваться.
0
|
||||||
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
|
| 13.04.2022, 22:17 [ТС] | |
|
Centurio, Уменьшение размерности происходит, после 4 строки кода, когда находит позиции NAN и далее работает не размерностью с 62280 на 25 , а с 44220 на 25, то есть 18060 строк потеряно. поменялась структура массива относительно исходного массива, а там они имели важность, так как потом должно будет добавляться два столбца длины 62280, столбцы координат . координаты фиксированы.
Добавлено через 54 секунды Centurio, и самое главное пока не могу понять почему, так как код не изменен далее, но если первый код считал верно среднее значение, то сейчас не верно считает .
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
|
| 14.04.2022, 12:26 [ТС] | |
|
Centurio, К считает верно. Далее находим С, по индексу К. И в ячейках С пишет верно допустим 5 из индекса К. Но эти пять не в строку, а столбец видимо так среднее считает далее не правильно, и поэтому уже в М не верное среднее.
0
|
|
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
|
| 14.04.2022, 19:42 | |
|
Юля С, выше приведённый мной код неправильный. Сейчас пытаюсь решить задачу без использования цикла.
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
||||||
| 14.04.2022, 22:32 [ТС] | ||||||
|
Centurio, да заполнение в ячейки не правильно работает.
Добавлено через 27 минут Centurio, Еще вариант если делать в циклах, но работать дольше и сложнее. Если такую конструкцию, но не получается тоже.
0
|
||||||
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
|
| 15.04.2022, 19:29 | |
|
Юля С, с циклом сделать не сложно, но это, в самом деле, будет работать долго.
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
|
| 16.04.2022, 20:52 [ТС] | |
|
[url="https:[nick]Centurio[/nick],
Конечно смотря какие массивы по размерам .. [size="1"]Добавлено через 52 секунды[/size] Centurio, в зависимости от размера массива , конечно может долго.
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2017
Сообщений: 164
|
|
| 17.04.2022, 22:03 [ТС] | |
|
Centurio, значит делать через цикл ?
Проще вариантов нет ?
0
|
|
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
||||||
| 18.04.2022, 06:29 | ||||||
Сообщение было отмечено Юля С как решение
Решение
Юля С, да, похоже, без цикла тут не обойтись. Получается вот такой код:
1
|
||||||
| 18.04.2022, 06:29 | |
|
Помогаю со студенческими работами здесь
19
Найти значения в массиве, которые меньше хотя бы одного числа из другого массива Найти значение в массиве по индексу и увеличить на единицу Подсчитать количество элементов в массиве, являющихся точным квадратом другого элемента в этом массиве (найти ошибку)
Значение вектора направления повернутого на угол относительно другого вектора Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|