필터 지우기
필터 지우기

How to assign a handle in set function for figures?

조회 수: 3 (최근 30일)
Kian
Kian 2014년 10월 27일
댓글: Kian 2014년 10월 27일
This does not work. It gives me error: Error using set Value must be a handle
I understand the problem, should make var in the last line to be a handle, but can't figure out how to fix it! and is it possible to assign different colors to each plot when m loops through.
var = ['p' num2str(m)];
eval([var '= plot(x,y);']);
set(var,'Marker','o')
Thanks is advance.
  댓글 수: 2
Image Analyst
Image Analyst 2014년 10월 27일
I don't have any idea what you're trying to do, but I'm sure that this is not the way to do it. It's wrong in more ways that one. Take a step back and give us the big picture, like you want to use different markers on different curves in your graph, or whatever...
Kian
Kian 2014년 10월 27일
Basically what I'mm trying to do is plot several graphs into one figure, and assign each a different set of colors and markers. May be something like the following would better explain this considering x and y are updated in each loop (new datasets):
for m = 1:5
var = ['p' num2str(m)];
eval([var '= plot(x,y);']);
set(var,'Marker','o')
end
but I want to use different markers though each loop for each graph.
Hope this explains the issue better.

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

채택된 답변

Chad Greene
Chad Greene 2014년 10월 27일
Does this do what you're looking for?
x = linspace(0,2*pi,100);
markers = {'x','+','s','p','^'};
colors = colormap(jet(5));
LineWidths = 1:5;
hold on
for k = 1:5
h(k) = plot(x,randi(10)*sin(x*rand(1)),...
'marker',markers{1},...
'color',colors(k,:),...
'linewidth',LineWidths(k));
end
If you'd like to set values after plotting, h contains a handle for each plotted object.
  댓글 수: 1
Kian
Kian 2014년 10월 27일
Thank you Chad, this works.
Thank you again.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Annotations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by