plotting within a for loop

조회 수: 4 (최근 30일)
Christopher
Christopher 2013년 2월 17일
I have a for loop that takes 2 matrix 365x24 and plots each corresponding matrix line ,i.e. X(3,1:24) and Y(3,1:24), and plots it. I would like to be able to have a figure for every iteration so i can come back to it a look for it. In the long run i should have 365 accessible figures in the workspace. And if i can then take these 365 figures and store then in a folder

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2013년 2월 17일
편집: Azzi Abdelmalek 2013년 2월 20일
for k=1:365
h=plot(X(k,:),Y(k,:))
hgsave(h,'sprintf('fig%d',k))
close
end
To load your plots use
hgload('figurename')
  댓글 수: 5
Christopher
Christopher 2013년 2월 20일
%Zone C Data for 2011
clear all
%Data represents JAN 2 - DEC 31 DATE_E = xlsread('Zone_C.xlsx',1,'C25:C8760'); % DATE FROM EXCEL
DA_LBMP_E = xlsread('Zone_C.xlsx',1,'I25:I8760'); %DA_LMBP DATA FROM EXCEL
DA_REG_E = xlsread('Zone_C.xlsx',1,'K25:K8760'); %DA_REGULATION DATA(DOLLARS)FROM EXCEL
DA_CON_E = xlsread('Zone_C.xlsx',1,'P25:P8760'); %DA_CONGESTION DATA FROM EXCEL
TEMP_E = xlsread('Zone_C.xlsx',1,'R25:R8760'); %TEMPERATURE DATA (F)FROM EXCEL
HUMIDITY_E = xlsread('Zone_C.xlsx',1,'S25:S8760'); %HUMIDITY DATA FROM EXCEL
WIND_E = xlsread('Zone_C.xlsx',1,'T25:T8760'); %WIND SPEED DATA (MPH?)FROM EXCEL
LOAD_E = xlsread('Zone_C.xlsx',1,'U25:U8760'); %LOAD DATA (MW) FROM EXCEL
GAS_E = xlsread('Zone_C.xlsx',1,'V25:V8760'); %GAS PRICE DATA (DOLLARS) FROM EXCEL
%NOW REPRESENT DATA IN MATRIX FORM
HOUR = [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23];% VECTOR SO WE CAN PLOT ACCORDING TO THE HOUR OF THE DAY
DATE = reshape(DATE_E,24,[]);
DA_LBMP = reshape(DA_LBMP_E,24,[]); %RESHAPE COLUMN DATA INTO 24 X 365 MATRIX
DA_REG = reshape(DA_REG_E,24,[]); %RESHAPE COLUMN DATA INTO 24 X 365 MATRIX
DA_CON = reshape(DA_CON_E,24,[]); %RESHAPE COLUMN DATA INTO 24 X 365 MATRIX
TEMP = reshape(TEMP_E,24,[]);%RESHAPE COLUMN DATA INTO 24 X 365 MATRIX
HUMIDITY = reshape(HUMIDITY_E,24,[]);%RESHAPE COLUMN DATA INTO 24 X 365 MATRIX
WIND= reshape(WIND_E,24,[]);%RESHAPE COLUMN DATA INTO 24 X 365 MATRIX
LOAD = reshape(LOAD_E,24,[]);%RESHAPE COLUMN DATA INTO 24 X 365 MATRIX
GAS = reshape(GAS_E,24,[]);%RESHAPE COLUMN DATA INTO 24 X 365 MATRIX
%NOW THAT WE HAVE MATRIX OF OUR DATA, WE CAN PLOT ACCORDING TO THE HOURS OF
%THE DAY FOR EACH VARIBLE
%FOR LOOP TO SIMULTANEOUSLY GRAPH ALL VARIABLE
%Figure 1
for k=1:364
hold on
subplot(2,3,1)
plot(HOUR,DA_LBMP(:,k)); %PLOTS HOUR V DA_LBMP ON A SPECIFIC DAY
xlabel('hour');title('DA_LBMP');
hold on
subplot(2,3,2)
plot(HOUR,DA_REG(:,k)); %PLOTS HOUR V DA_LBMP ON A SPECIFIC DAY
xlabel('hour');ylabel('Price($)'); title('DA_REGULATION');
hold on
subplot(2,3,3)
plot(HOUR,DA_CON(:,k)); %PLOTS HOUR V DA_LBMP ON A SPECIFIC DAY
xlabel('hour');title('DA_congestion');
hold on
subplot(2,3,4)
plot(HOUR,LOAD(:,k)); %PLOTS HOUR V DA_LBMP ON A SPECIFIC DAY
xlabel('hour');ylabel('LOAD(MW)'); title('Load')
hold on
subplot(2,3,5)
plot(HOUR,GAS(:,k)); %PLOTS HOUR V DA_LBMP ON A SPECIFIC DAY
xlabel('hour');ylabel('Price($)'); title('Gas prices')
hold on
subplot(2,3,6)
plot(HOUR,TEMP(:,k)); %PLOTS HOUR V DA_LBMP ON A SPECIFIC DAY
xlabel('hour');ylabel('Temp(F)'); title('Temperature')
end
%AZZI THIS IS WHERE I AM HAVING TROUBLE. AS SOON AS I RUN THIS THE FIGURES
%GET STORED INTO THE MATLAB FOLDER BUT THEY DONT HAVE THE GRAPHICAL
%INFORMATION I NEED
for k=1:364
plot(HOUR,LOAD(:,k));
hgsave(sprintf('plot%d.jpg',k));
close
end
Christopher
Christopher 2013년 2월 20일
hey azzi i got it to work ! thanks for your help! you are the man!

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

추가 답변 (1개)

Image Analyst
Image Analyst 2013년 2월 17일
You might want to save them as PNG files so that you can see them in the operating system as thumbnails, that is, if you don't need to interact with them via the figure toolbar anymore.
yourFolder = pwd; % Or whatever folder you want to store them in.
for k=1:365
cla;
plot(X(k,:),Y(k,:));
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
baseFileName = sprintf('Figure #%d.png', k);
fullFileName = fullfile(yourFolder, baseFileName);
export_fig(fullFileName);
end
  댓글 수: 3
Walter Roberson
Walter Roberson 2013년 2월 21일
Image Analyst did say you needed to download export_fig, and even gave you the URL.
Christopher
Christopher 2013년 2월 21일
i downloaded export fig. in what folder should i put it in so matlab can find the code ?

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

카테고리

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