Nano Hash - криптовалюты, майнинг, программирование

Системная команда MATLAB Нажмите Enter, чтобы выйти

Я пытаюсь написать сценарий MATLAB, который будет вызывать и запускать внешнюю программу, а затем выполнять другие команды MATLAB.

tic                       %Start stopwatch
system('MyProgram.exe')   %Call and run my program
toc                       %End stopwatch 

Однако эта программа «MyProgram.exe» требует от меня «Нажать Enter для выхода». Как заставить мой скрипт MATLAB пройти «Enter», чтобы продолжить? Например, как передать «Enter» в качестве ввода моей программы в конце выполнения? Или как это сделать вообще?

28.06.2017

  • Это может быть так же просто, как передать второй возврат в системный вызов: system('Myprog.exe\n') 28.06.2017
  • Он не перейдет на следующую строку, пока не нажмет Enter. Как MATLAB может передать этот Enter, чтобы сценарий продолжался без вмешательства пользователя? 28.06.2017
  • В Unix вы можете использовать system('MyProgram < /dev/null'). В окне, я думаю, вы должны иметь возможность использовать system('MyProgram.exe < NUL'), но я не могу проверить это на данный момент. 28.06.2017
  • Если ваша программа находится в командной строке, а не на основе графического интерфейса, вы, вероятно, можете echo.|MyProgram.exe 29.06.2017
  • Большое спасибо m7913d и SomethingDark. Оба решения работают. 29.06.2017

Ответы:


1

В UNIX вы можете использовать

system('MyProgram < /dev/null'). 

как предлагается в документации Matlab:

Чтобы отключить стандартный ввод и перенаправление с опережением ввода, включите форматированный текст < /dev/null в вызов вызываемой команды.

Эквивалент Windows (на основе этот пост):

system('MyProgram.exe < NUL')
28.06.2017

2

Когда консольной программе нужно один раз получить ввод от пользователя, и нет встроенного способа сделать это (например, передать его в качестве аргумента), этот ввод может быть echoed и передан программе. Это также можно использовать для нажатия Enter (опять же, один раз), введя пустую строку.

echo.|program.exe

Хотя традиционно пустая строка генерируется с помощью echo с помощью команды echo., это может привести к ошибке, если текущий каталог содержит файл с именем echo, который не имеет расширения. Чтобы обойти это, вы можете использовать ( вместо ..

echo(|program.exe
28.06.2017
  • Кажется, я припоминаю ветку Dostips, в которой обсуждались альтернативы echo., в конечном итоге обнаружившие случай, когда echo/ не работал. 29.06.2017
  • Да, echo/ терпит неудачу, если любой отображаемый текст начинается с ?; Я считаю, что это единственный случай ошибки... 29.06.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..