Окно участка не отвечает

Я использую Windows 7 64 бит. Каждый раз, когда я использую функцию заговора, окна заговора будут показываться и рисоваться успешно, но после этого он перестает отвечать на запросы и должен закрывать его.

Например:

x = linspace(0,1,10)
y = x.^2
plot(x,y);

Странно, когда окна замораживания замораживаются, и я должен закрыть окна октавы, они также не будут отвечать. Этого не произойдет, если я не буду использовать функцию заговора.

Я не знаю почему. Это потому, что я использую 64-битную версию? Подскажите пожалуйста как это исправить.

9 ответов

Решение

Ой. Мой друг показывает мне эту команду, и она отлично работает:

pkg rebuild -noauto oct2mat

Команда переустанавливает пакет, но помечает его как не загружаемый по умолчанию при запуске. Это поведение было изменено, и новые версии пакетов Forge НЕ будут загружаться по умолчанию.

Проблема в том, что пакет oct2mat никогда не должен загружаться. Он скрывает несколько функций ядра Octave, поэтому начинает действовать странно. Если вам действительно не нужен этот пакет, лучше просто удалить его.

Цель oct2mat - восполнить отсутствие отсутствующих функций в Matlab и заставить код, написанный для Octave, запускаться в Matlab. Если вам не нужен oct2mat, удалите его. Никому не нужны все установленные пакеты, и это может на самом деле ухудшить вашу установку Octave, например, в случае oct2mat.

Возможно, проблема в графическом инструментарии, который используется в вашей установке Octave.

Чтобы проверить это, введите graphics_toolkit в командной строке Octave.

Если ответ fltk и ваше окно графика зависает, затем переключите набор инструментов по умолчанию на gnuplot: graphics_toolkit('gnuplot')

Проверьте, что проблема исправлена: x=1:10; y=x.^2; plot(x,y)

Сделайте изменение постоянным в вашем файле octave.rc, расположенном в вашем каталоге установки Octave:

    On Windows:  \Octave\share\octave\site\m\startup\octaverc
    On Linux:     ~/.octaverc


До сих пор не работает?

  • Если ответ qt попробуйте либо fltk или же gnuplot (один может быть быстрее другого).

  • Если вышеперечисленное не работает, вам может понадобиться установить / переустановить gnuplot. (спасибо Лукасу и Саурабу за этот крайний случай).

Как писал Асад Эбрахим, проблема заключается в инструментарии. У меня появилась другая проблема в версии 3.8.2. что gnuplot вообще не работал. Окна сюжета не показывались, и мне нужно было закрыть Октаву. Если у кого-то есть такая же проблема, решение состоит в том, чтобы загрузить gnuplot и установить его в папку Octave. Он заменяет старый gnuplot, а новый работает.

И я благодарю вас за совет.

Так на окнах это работало для меня:

Шаг 1: Установите gnuplot для C:\Program Files (x86)\gnuplot:

Ссылка для скачивания:

https://sourceforge.net/projects/gnuplot/

Шаг 2: Перейдите ниже указанного каталога (учитывая, что вы установили Octave в C: \ root):

C: \ октава \ доля \ октава \ сайт \ м \ запуск

открыть octaverc файл присутствует в этом каталоге в блокноте.

Шаг 3:

Добавьте следующие строки в конец файла.

gnuplot_binary 'C:\Program Files (x86)\gnuplot\bin\gnuplot.exe'
graphics_toolkit('gnuplot')

Шаг 4:

Сохраните файл и выйдите из Блокнота. Если Octave открыт, пожалуйста, закройте его тоже.

Шаг 5:

открыто Octave и введите следующую команду для проверки:

plot([1,2,3],[4,5,6]);

Обратите внимание, что в первый раз это может занять gnuplot до 5 минут, чтобы сделать график. Поэтому, пожалуйста, не пытайтесь закрыть приложение. Последующие простые сюжеты отображаются довольно быстро, обычно менее 1 секунды.

Ответ, данный Асадом, абсолютно правильный и хорошо сработал для меня.

Это всего лишь исключительный случай.

После ввода в командной строке Octave: graphics_toolkit

Если ответ qt вместо fltk, то, вероятно, ваш компьютер должен быть установлен gnuplot отдельно от SourceForge, поскольку Octave получает некоторые ошибки при установке в W8/10.

Вот ссылка прилагается. https://sourceforge.net/projects/gnuplot/?source=directory

Вам не нужно менять какие-либо установочные файлы.

Это должно работать

Когда я впервые протестировал построение примера графика, появилось окно графика, но оно не отвечало в течение одной-двух минут, затем появился график. Дальнейшие сюжеты появились мгновенно. ОС: Windows 7 64 бит, октава 4.0.3 64 бит.

У меня есть похожие симптомы при использовании октавы 4.2 при запуске вашего кода (не удается закрыть окна печати, для отображения графика требуется время). Если операторы не заканчиваются точкой с запятой (;), команда и результат будут напечатаны в окне команд. Мне кажется, что командное окно останавливает интерпретацию кода и ждет, пока пользователь нажмет действительную клавишу (f,b,q), чтобы настроить или прервать выполнение. Точка остановки зависит от ранее выполненного кода и размера окна команд, поэтому характер этих симптомов прерывистый.

Решение:

Вариант 1: перейдите в командное окно и продолжайте нажимать f (вперед)

Вариант 2. Используйте точку с запятой для завершения операторов

x = linspace(0,1,10);
y = x.^2;
plot(x,y);

Вариант 3: поиграть с некоторыми настройками командного окна

Надеюсь, поможет

У меня была та же проблема в версии 4.0.3, и переключение набора инструментов по умолчанию на gnuplot, как сказал Асад Эбрагим, не работает для меня. Затем я нахожу что-то в Octave для Microsoft Windows:

Нынешняя октава для Windows отправляет не полнофункциональный gnuplot. Поэтому вы не можете использовать все возможности графического инструментария gnuplot

И есть инструкция, как скачать и установить gnuplot. Надеюсь, это полезно для вас.

Ниже приведено решение для замораживания окна графика при запуске Octave из Emacs, зачисленное John Lawrence Aspden user2699 и пользователю user2699 из вопроса Как заставить заговор Octave работать в emacs?, Это принесено здесь, потому что этот вопрос намного легче найти.

Проблема может быть вызвана режимом Emacs octave-mode --no-line-editing Вы можете исправить это, M-x customize-variable RET inferior-octave-startup-args RET и изменить --no-line-editing в --line-editing,

У меня была такая же проблема. Иногда linspace показывает вам все результаты в командных окнах и ждет вашего взаимодействия. Добавить ; после команды или нажмите q выйти в командном окне x = linspace(0,10,100);

Постоянное решение, отредактировано

Отключите разбиение на страницы вывода экрана, поставив more offв командное окно октавы. Это предотвратит ожидание кода, пока вы не увидите все строки.

Если вы хотите снова включить это, используйте more on

документация

Связанные вопросы

предотвращение взаимодействия с пользователем на командном окне для октавы

Не удается остановить выполнение в командном окне графического интерфейса пользователя

Другие вопросы по тегам