WedX - журнал о программировании и компьютерных науках

невозможно построить по осям в графическом интерфейсе Matlab из списка

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

У меня есть еще одна кнопка для выполнения операции построения графика. Но когда я нажимаю кнопку графика, я получаю графики в фигуре, которая всплывает.

Но согласно моему приложению я должен создавать графики по осям. я так не умею

Пожалуйста, помогите

МОЙ код кнопки сюжета выглядит следующим образом:

function plot_button_Callback(hObject, eventdata, handles, varargin)
% hObject    handle to plot_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[x] = get_var_names(handles);
if isempty(x) 
    return
end
if isequal(x,'a')
% figure(gcf)

 try
    figure(1)

    evalin('base',['plot(a,b,''--r'')'])
    hold all
    evalin('base',['plot(a,c,''k'')'])
    hold all
    evalin('base',['plot(a,d,''g'')'])
    figure(2)
    evalin('base',['plot(a,e,''g'')'])
    hold all
       grid on   
     catch ex
    errordlg(...
      ex.getReport('basic'),'Error generating linear plot','modal')
 end
26.09.2014

Ответы:


1

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

plot(handles.axes1, xdata, ydata);

Теперь этот подход может не сработать для вас, потому что вы используете функцию evalin (что я не рекомендую делать, было бы намного лучше передать эту информацию в графический интерфейс). Несмотря на это, хороший способ реализовать вашу цель с этими ограничениями — это

a = evalin('base','a');
b = evalin('base','b');
plot(handles.axes1,a,b,'--r');

Оси вашего графического интерфейса могут не называться axes, вам придется это проверить. Вам также, вероятно, следует удалить вызов figure(1), если я правильно понимаю вашу цель.

Кроме того, вам не нужно вызывать удержание всех после каждого построения графика, достаточно одного раза.

26.09.2014
  • спасибо, теперь я получаю вывод по осям .. :) Но, используя этот подход, теперь я не могу удерживать график на осях. Мне нужно, чтобы все графики находились на одной оси. но я получаю только последний график по осям, даже когда я использую все. Hold all просто дает мне всплывающее окно с цифрой, когда я запускаю свое приложение. не могли бы вы, пожалуйста, дайте мне знать, как разместить все графики на одних и тех же осях?? 27.09.2014
  • @gaurav, попробуйте использовать hold on вместо или в дополнение к hold all 29.09.2014
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

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

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]