How to use set() in a loop?
조회 수: 6 (최근 30일)
이전 댓글 표시
Hi! I have lots of lots of images in a figure and I want to change them between being visible and invisible. My problem is that I don't know how to change severals of images in a loop. Now I have to type in set(_name1_,'Visible','off') for every image. I can't find a way to change the name in set(_name1_). What can I do?
댓글 수: 0
답변 (4개)
per isakson
2012년 5월 3일
Try something like this:
name_list = { 'name1', 'name2', 'name3', .... }; % row vector
for name = name_list
image_handle = findobj( 'PropertyName', name{1} ) % thanks to Daniel
set( image_handle, 'Visible', 'off')
end
The trick is to create name_list and that the names are unique
--- CONT. ---
Doc says:
himage = imshow(...) returns the handle to the image object created by imshow.
Thus, himage is a handle to an image object and 'Visible' is a property of a image object. Try
imh8 = imshow('Bar78.png',bar8);
set( imh8, 'Visible', 'off' )
I'm not sure this will do what you want, but ...
댓글 수: 5
Daniel Shub
2012년 5월 3일
Somewhere Johan is going to do a loop and a variable naming scheme like imh8 and bar8 is going to probably cause him problems.
per isakson
2012년 5월 3일
@Daniel Obviously 'PropertyName' must match the PropertyValue, "name". Why do we care about Johans problem? I try give hints and point to the documentation, which I think is good. Sometimes coming up with a good search term is the real problem.
Daniel Shub
2012년 5월 3일
I believe your question is really: I created a bunch of variables called
name1
name2
name3
댓글 수: 0
Daniel Shub
2012년 5월 3일
I am guessing a lot here, but what about something like
for ibar = 1:8
subplot(3, 3, ibar);
bar(ibar) = imshow(['Bar7', num2str(ibar), '.png');
end
set(bar, 'Visible', 'off')
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 White에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!