Кирилл Жиляев, Для вашей задачи переопределять new бесполезно, результата все равно не добьетесь, по причине вышеизложенного коллегами.
Изучите исходники интересующего класса, за одно поймете что там в нутри и как оптимальней его использовать, а заодно решите вопрос с памятью.
Rudtoha, Тогда связывайте оба процесса симуллинк/матлаб и питон с помощью механизмов межпроцессного взаимодействия. Матлаб генерирует запрос к питону, питон формирует ответ, используя нейросеть и отдает его матлабу.
По крайней мере сокеты оба должны поддерживать (хотя за матлаб не поручусь).
Alex Setup, Она бы у вас была полностью обновленная. Не ясно как вы ее ставили с офф.сайта, когда у вас на скрине накатывается предыдущий rollup (1709), сейчас актуальный 1803.
Это один из вариантов установки обновлений рекомендуемый микрософт с проблемами установки с помощью WU.
Другой рекомендуемый вариант в ответе Константин Цветков
Айфичер. Цифровая обработка сигналов. Практический подход.
Стивен Смит. ЦОС. Практическое руководство для инженеров и научных работников.
Ричард Лайонс. ЦОС.
Все очень хорошие, Айфичер потолще и по подробнее, но некоторых деталей там не нашел, возможно плохо искал, нашел у Смита.
Если что: тип данных char - это целочисленный тип размером 1 байт.
Запись '0' преобразуется компилятором в число 48. Но на практике удобнее (и понятнее) записывать так как приведено в задании.
sha-man, С усреднением (делением на 2) ... может быть, нужно проверять.
Еще варианты:
1.Приводить к максимуму, т.е. if ((sum = n1+n2) > max) { sum = max; }
2.Увеличивать разрядность до 2 байт, цифровые звуковые отсчеты могут быть разной разрядности.
3.После получения суммы увеличенной разрядности можно вычесть минимум по модулю. Тогда, возможно, разрядность можно будет понизить.
PS: я на самом деле акустикой особо не занимался, просто немного знаю ЦОС. Поэтому то что я тут написал нужно проверять.
С увеличением разрядности точно все должно поучиться, если это DirectShow.
sha-man, цифровой звук во временной области представляет собой массив чисел (тип чисел может быть разный, нужно смотреть конкретную реализацию).
Если взять оба потока с одинаковой длительностью и одинаковой частотой дискретизации, то размерность массивов будет одинаковая - почленно складываете массивы.
Если вы ТОЧНО понимаете отличие статических методов от не статических, то используйте их на здоровье. Ничего они не нарушают, когда их применяют там где нужно.
Если не понимаете разницу - учите мат.часть.
Ну тут часто бывает так что эта железка и связанное с ней оборудование стоит свыше 1-100тыс вечнозеленых, и менять его пока оно работает просто из любви к искусству не очень то выгодно.
Да, ситуации разные бывают, конечно.
Нужно оценить стоимость простоя. Часто стоимость простоя такова, что и 100 тыс.зеленых не остановят.
Для начала нужно найти альтернативу, оценить стоимость и сроки реальной поставки. Затем дать понять руководству, что есть такая проблема и что решение стоит вот столько, времени займет столько, а если не предпринять никаких действий, то мы рискует тем-то. А дальше пусть оно решает - у него голова большая (оно отвечает за работу бизнеса).
Драйвер не подойдет на х64.
Посмотрите, что именно потребляет ресурсы (память), возможно есть варианты как-то освобождать их: перезагружать/очищать/удалять/сохранять на диск и т.п.
Подумайте еще о том, что вы будете делать, если железка, которая не поддерживается производителем (судя по отсутствию х64 драйверов) в один прекрасный день сдохнет (а это когда-нибудь случится) и она у вас в единственном экземпляре. И у вас на нее завязан какой-то бизнес-процесс.
Я бы уже искал актуальную замену этой железке.
DeusVEC, Смотрите журнал винды, возможно там будут какие-то ошибки.
Посмотрите что у вас грузиться в автозагрузке, все ли вы знаете из этого списка и все ли вам нужно.
Обновите драйвера.
Удалите лишний софт.
Обновите винду.
Евгений Старцев, у вас в примере вы ищите "кедровый", а пишете про "кедровые". Товар "кедровый" из вашего примера должен быть найден, а товар "кедровые" нет, что вполне логично - SQL ничего не делает с вашим шаблоном поиска, как вы его задали, в таком виде он и ищет. Посмотрите ответ Павел Быков, по моему это правильное направление.
Это поведение Си функций преобразования строки в число: www.cplusplus.com/reference/cstdlib/strtol/?kw=strtol
Видимо в данной конкретной реализации используются они. Если отрабатывает с восьмеричными, то будет работать и с шестнадцатеричными значениями. Но если такое поведение не отражено в документации, то полагаться на это не стоит. В других реализациях/версиях такие фокусы могут не пройти.
kytcenochka, Writefile.h вы, конечно должны включать в main.cpp - иначе компилятор не будет знать как вызывать эти функции. В этом заголовочном файле нужно разместить прототипы функции без тела.
На счет ошибки: в никсах ld ищет библиотеки только в стандартных путях типа /lib, /usr/lib, /usr/local/lib. Текущий каталог не входит в список этих путей. Аналогичная ситуация, например, когда вы хотите запустить исполняемый файл из текущего каталога, то вам придется написать ./proga, а не просто proga, как это было бы в винде.
Ключ -L для ld позволяет указать дополнительный каталог где линковщик будет искать библиотеки.
Но это еще не все, собрать программу вы соберете, но она не запустится, т.к. при запуске поиск библиотек, которые использует программа, осуществляется аналогичным образом. Нужно добавить путь к переменной окружения LD_LIBRARY_PATH. Собственно можно сразу разобраться с этой переменной, т.к. ld то же ее использует для поиска библиотек. https://stackoverflow.com/questions/2726993/how-to...
kytcenochka, Собственно говоря, вы можете убрать из библиотеки файл, содержащий main() и использовать его в качестве программы, использующей библиотеку.
Все равно функция main() в библиотеке явно лишняя.
Просто соберите отдельно библиотеку без main.cpp.
Отдельно собирайте main.cpp, не указывая других исходных файлов, вместо них укажите опцию -l<имя библиотеки>. И еще в линуксе библиотеки должны иметь префикс lib в имени файла, gcc на это расчитывает. В параметре -l имя нужно указывать без префикса.
К линуксу непосредственно это отношения не имеет, просто вы сменили компилятор и у другого компилятора свое видение мира:
1. function1.cpp:219
Похоже, что имя DateTime есть в STL и компилятор путает вашу структуру DateTime с ней: vector<DateTime> time;
Возможно самым простым вариантом было бы переименовать структуру DateTime.
Но правильней было бы убрать везде using namespace std, а для обращения к объектам STL использовать префикс области видимости std::
Все остальные ошибки в function1.cpp вытекают из первой.
2.function2.cpp:31
Здесь вы зачем то используете Си функцию rand() не подключив соответствующий заголовочный файл (кстати перед использованием rand() генератор случайных чисел нужно проинициализировать с помощью srand()). Но вообще в плюсах есть свои генераторы, лучше бы пользоваться ими: en.cppreference.com/w/cpp/numeric/random
3.function2.cpp:34
Тут дело в том, что типа __int16 нет в природе. Вообще в названии типа не зря стоят подчеркивания впереди, они должны вам сказать о том, что этот тип сильно внутренний и не нужно его использовать в своих программах, т.к. его может не быть в других компиляторах (да в том, что вы использовали в следующей версии его может уже не быть). На это вы и напоролись.
В C/C++ есть свои стандартные библиотечные документированные аналогичные типы:
uint8_t, uint16_t, uint32_t, uint64_t и аналоги для знаковых чисел. Используйте эти типы подключив соответствующий заголовочный файл: #include <cstdint>
Изучите исходники интересующего класса, за одно поймете что там в нутри и как оптимальней его использовать, а заодно решите вопрос с памятью.