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

Как вы можете отслеживать переменную во время цикла Matlab, не печатая ее?

Я запускаю цикл, в котором вычисляются переменные. Было бы полезно иметь возможность видеть текущие значения этих переменных. Печатать их бесполезно, потому что другие части цикла печатают много текста. Также на вкладке Workspace значения не отображаются до конца цикла.

Есть ли способ контролировать эти переменные, т.е. печатая их в окно?

18.12.2015

  • Цикл занимает долго время? Вы хотите сделать это, чтобы устранить неполадки или просто посмотреть? Вы можете использовать отладчик, если он устраняет неполадки. Вы хотите распечатать его на что-то еще, кроме консоли? 18.12.2015
  • Да, цикл занимает много времени, и я хочу сделать это для устранения неполадок. Возможно, тогда решением будет напечатать его в окне рисунка. 18.12.2015
  • Если он работает медленно и вы пытаетесь его ускорить, вам следует профилировать свой код с помощью профилировщика . profile on затем выполните свои действия, profile off и profile viewer или что-то в этом роде. Если это просто занимает много времени, и вы не хотите делать это быстрее, поймите, что любые проверки, которые вы добавляете в свои циклы, сделают его медленнее. Вы также можете вставить что-то вроде if(mod(ii, 1000)==0) disp('stuff to display every 1000 iterations'); end 18.12.2015

Ответы:


1

Вы можете создать фигуру с объектом text и обновить его свойство 'string' в соответствии с к нужной переменной:

h = text(.5, .5, ''); %// create text object
for n = 1:1000
    v = n^2; %// loop computations here. Variable `v` is to be displayed
    set(h, 'string', ['Value: ' num2str(v)]);
    drawnow %// you may need this for immediate updating
end

Для большей скорости вы можете либо обновлять только каждые S итерации:

h = text(.5, .5, ''); %// create text object
S = 10; %// update period
for n = 1:1000
    v = n^2; %// loop computations here. Variable `v` is to be displayed
    if ~mod(n,S) %// update only at iterations S, 2*S, 3*S, ...
        set(h, 'string', ['Value: ' num2str(v)]);
        drawnow %// you may need this for immediate updating
    end
end

или используйте drawnow('limitrate'), как отметил @Edric:

h = text(.5, .5, ''); %// create text object
for n = 1:1000
    v = n^2; %// loop computations here. Variable `v` is to be displayed
    set(h, 'string', ['Value: ' num2str(v)]);
    drawnow('limitrate')
end
18.12.2015
  • Это хорошее решение, если предположить, что это длинный цикл, и значение, которое он/она хочет посмотреть, обновляется реже, чем один раз в секунду. В противном случае цикл будет значительно медленнее (я думаю)...? 18.12.2015
  • @StewieGriffin Да, это наверняка замедлит цикл. Если ОП хочет проверять переменную только каждые S итераций, он может использовать mod в ветке ìf. Я обновлю это 18.12.2015
  • ИМХО, рисование относится к категории супер умных вещей, которые вы могли бы, но, вероятно, не должны делать. если вы делаете это только каждые x итераций, то это может быть разумно. 18.12.2015
  • @StewieGriffin Ха-ха-ха. Туше 18.12.2015
  • Как насчет drawnow('limitrate') 18.12.2015
  • Хорошая идея! Я не знал о такой форме drawnow 18.12.2015
  • Если расчет в цикле является ограничивающим фактором, а не количеством итераций, то размещение значений в заголовке waitbar также является хорошим вариантом. 18.12.2015
  • Новые материалы

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

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

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

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

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

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

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