plotting multiple variables in a listbox

조회 수: 2 (최근 30일)
Melissa
Melissa 2014년 8월 18일
댓글: Melissa 2014년 8월 18일
Good Morning, I am trying to plot all variables selected in a listbox in a matlab gui. I seem to be overwriting the variables when plotting and only plotting the last one even when using the hold on command inside the loop. I also cannot figure out how to add a legend to the plot which corresponds to the variable selected in the listbox.
Any suggestions?
Thanks so much.
%Setting up string and value for desired parameters
Variable_Name = get(handles.Parameter_Listbox,'String');
Index = get(handles.Parameter_Listbox,'Value');
%Setting results plot
axes(handles.Plot)
%Creating loop for parameters choosen
for i=1:length(Index)
Parameter(:,i)=Data(:,Index(i))
end
[j,k]=size(Parameter);
for p=1:k
plot(Data(:,2),Parameter(:,k));
hold on
legend(Variable_Name(k));
hold on
end

채택된 답변

Jan
Jan 2014년 8월 18일
You are plotting Data(:, 2) against Data(:, Index). Is this your intention?
What about this:
Variable_Name = get(handles.Parameter_Listbox,'String');
Index = get(handles.Parameter_Listbox,'Value');
plot(Data(:,2), Data(:, index).', 'Parent', handles.Plot);
legend(Variable_Name(index));
  댓글 수: 4
Jan
Jan 2014년 8월 18일
Please post a complete copy of the error message.
Melissa
Melissa 2014년 8월 18일
Using your same logic I found a way so that the matrix was not empty:
pHandles = plot(Data(:,2), Data(:, Index).', 'Parent', handles.Plot);
legend(pHandles,Variable_Name(Index));
Thanks for all of your help.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Michael Haderlein
Michael Haderlein 2014년 8월 18일
편집: Michael Haderlein 2014년 8월 18일
You only plot the last Parameter, you need to change the line
plot(Data(:,2),Parameter(:,k));
to
plot(Data(:,2),Parameter(:,p));
The same with the legend, too.
  댓글 수: 3
Michael Haderlein
Michael Haderlein 2014년 8월 18일
편집: Michael Haderlein 2014년 8월 18일
Sorry, my comment on the legend was wrong. You overwrite the legend in every iteration. Put the legend command below the loop and write
legend(Variable_Name(Index))
Michael Haderlein
Michael Haderlein 2014년 8월 18일
Anyway, Jan Simon's answer is better as he plots everything without the loop - just follow his answer.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Specifying Target for Graphics Output에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by