Plot with loop work only for the last

조회 수: 7 (최근 30일)
Ferial Assmani
Ferial Assmani 2016년 3월 29일
댓글: Ferial Assmani 2016년 4월 1일
Dear all, on a loop (i=1:Nbr_Position) I get only the last plot
V_Time = [1, 2, 3]; % Time Vector fixe length
%
V_Data = 1:1:12; % Data Vector
Nbr_Position = 2; % Nbr of position
Nbr_Case = 2; % Nbr of cases
%
N_Rows= length(V_Time); % Nbr of rows for matrix
N_columns= length(V_Data)/N_Rows; % Nbr of columns for matrix
M_Brut= (reshape(V_Data,[N_Rows,N_columns])); % Brut matrix from Data Vector
%
%
for i=1:Nbr_Position % loop by position
M_Nett{i} = M_Brut(:,(i):(Nbr_Position):(end)); % Nett matrix
for j=1:Nbr_Case % loop by case
plot(V_Time,M_Nett{i}(:,1:j)') % plot pair
title(['Position N°: ' num2str(i)]) % title
legend(genvarname(repmat({'Case'},1,j),'Case')) % legend
end
end
Why i cannot get the plot for i = 1 and i = 2 ?????

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2016년 3월 29일
  댓글 수: 4
Ferial Assmani
Ferial Assmani 2016년 3월 29일
Coup d'un magicien, Merci beaucoup
Ferial Assmani
Ferial Assmani 2016년 4월 1일
Dear Mr Azzi, for reason of clarity, i want to plot separately all figures, thy mast be (Nbr_Position * Nbr_Case) plot, i have tried this but it does not work:
clear all; clc; close all;
V_Time = [1, 2, 3]; % Time Vector fixe length
%
V_Data = 1:1:12; % Data Vector
Nbr_Position = 2; % Nbr of position
Nbr_Case = 2; % Nbr of cases
%
N_Rows= length(V_Time); % Nbr of rows for matrix
N_columns= length(V_Data)/N_Rows; % Nbr of columns for matrix
M_Brut= (reshape(V_Data,[N_Rows,N_columns])) % Brut matrix from Data Vector
%
%
for i=1:N_columns % loop by position
figure
for j=1:Nbr_Case % loop by case
plot(V_Time',M_Brut(:,i)) % plot Time Vs M_Brut (Data i line)
end
title(['Position N°: ' num2str(i) ' &' ' Case ' num2str(j)]) % title
legend(['Case' num2str(j)]) % legend
end

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

추가 답변 (1개)

Ced
Ced 2016년 3월 29일
The matlab documentation is really good for that:
You need to:
a) open a new figure in each iteration of i
b) Keep the old lines as Azzi Abdelmalek pointed out.
for i=1:Nbr_Position % loop by position
%%OPEN NEW FIGURE WINDOW HERE
%%MAKE SURE OLD LINES ARE KEPT (see Azzi's answer)
for j=1:Nbr_Case % loop by case
plot(V_Time,M_Nett{i}(:,1:j)') % plot pair
% ...
end
end
I will let you fill in the blanks

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by