Hello all,
I have a cell array t and T defined for simplicity as the following:
t = {rand(1,10),rand(1,10)};
T = {rand(1,10),rand(1,10)};
I am trying to plot t against T on two different figures, not a single figure. When I used this,
cellfun(@(x,y) plot(x,y), t,T);
They override each other on a single figure. Is there any way to plot them individually on two figures?
Thanks in advance for the help,
Ahmad Gad

 채택된 답변

Jan
Jan 2021년 2월 9일
편집: Jan 2021년 2월 9일

1 개 추천

CELLFUN is not really useful here, because it increases the complexity. Do this with a loop instead:
t = {rand(1,10),rand(1,10)};
T = {rand(1,10),rand(1,10)};
for k = 1:numel(t)
FigH = figure;
AxesH = axes(FigH);
plot(AxesH, t{k}, T{k})
end
If you have any good reasons to hide the details in cellfun():
cellfun(@(x, y) plot(axes(figure), x, y), t, T)
The loop is nicer.

댓글 수: 3

Ahmad Gad
Ahmad Gad 2021년 2월 9일
Thanks a lot Jan. That helps.
Jan
Jan 2021년 2월 9일
I've edited the cellfun version.
Walter Roberson
Walter Roberson 2021년 2월 9일
When doing graphics operations in a cellfun() or arrayfun() or structfun(), make sure to use "hold on" unless you are generating a new axes or figure each time (which Jan's code does do.)

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

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

제품

릴리스

R2020b

질문:

2021년 2월 9일

댓글:

2021년 2월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by