Окно участка не отвечает
Я использую 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
:
Ссылка для скачивания:
Шаг 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
Связанные вопросы
предотвращение взаимодействия с пользователем на командном окне для октавы
Не удается остановить выполнение в командном окне графического интерфейса пользователя