why my plots are getting replaced after every simulation?

조회 수: 1 (최근 30일)
Rakesh Roshan
Rakesh Roshan 2022년 6월 14일
댓글: Rakesh Roshan 2022년 6월 15일
T=readtable('88.xlsx');
T1=table2cell(T);
begin=csvread('count1.csv');%count for different no of person
for i=1:size(T,1)
name=[T{i,1}]
age=T1{i,2};
BP=T1{i,3};
res1=0;
for res=[0 1]
Tobegin(res,name,age,BP,res1)
end
res1=1;
for res=[0 1]
Tobegin(res,name,age,BP,res1)
end
if begin<size(T,1)% check whether all names are selected
begin=begin+1;%increment counter
dlmwrite('count1.csv',count) %write name of person number to csv file so that the program starts can run from person it stopped
else count=1;
dlmwrite('count1.csv',count)%initialise counter again
end
end
name = 1×1 cell array
{'Ram'}
s3 = 1×5
1.1200 1.7400 1.7000 2.5600 3.4500
s3 = 1×5
1.1200 1.7400 1.7000 2.5600 3.4500
s3 = 1×5
1.1200 1.7400 1.7000 2.5600 3.4500
s3 = 1×5
1.1200 1.7400 1.7000 2.5600 3.4500
Error using count
Not enough input arguments.
function Tobegin(res,name,age,BP,res1)
f=[8 9 10 11 12];
s1=[1 2 5 2 3];
figureplots1(f,s1)
s2=[2 4 8 9 10];
figureplots2(f,s2)
s3=[s1+s2];
figureplots3(f,s3)
rowsofdata1=[age BP res res1];
rowsofdata2=[age BP res res1];
dlmwrite('input1.csv',rowsofdata1,'-append','delimiter',',');
dlmwrite('input2.csv',rowsofdata2,'-append','delimiter',',');
end
function figureplots1 (f,s1)
a=figure;
plot(f,s1)
saveas(a,'Figure1_plot');
hold on
a1=figure;
plot(f,10*log(s1))
saveas(a,'Figure2_plot');
end
function figureplots2 (f,s2)
b=figure;
plot(f,s2)
saveas(b,'Figure1_plot');
hold on
b1=figure;
plot(f,10*log(s2))
saveas(b1,'Figure2_plot');
end
function figureplots3 (f,s3)
c=figure;
plot(f,s3)
saveas(c,'Figure3_plot');
hold on
c1=figure;
plot(f,10*log(s3))
saveas(c1,'Figure4_plot');
end
for each person 4 simulation is there here i have i written f ,s1,s2 values but every time it willl get varied..
my plots are getting replaced ..i.e after each simulation i am getting that particular result graph but as soon as it goes to next simulation plots gets replaced..with new simmulation s1 and s2 result
i should get as Figure1_plot
Figure2_plot
Figure3_plot
Figure4_plot.............total 16 plots i should get but i am getting 4 plots only
2018a version
  댓글 수: 4
Torsten
Torsten 2022년 6월 14일
Maybe you forgot the "hold on" after the first plot command ?
Rakesh Roshan
Rakesh Roshan 2022년 6월 14일
thank u sir i got all 24 plots sir but i am facing diffculty in giving its name it should be named as FIgure1_s1,Figure2_s2,Figure3_S3.....................................Figure24_s3. i am not getting it

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

답변 (2개)

David Hill
David Hill 2022년 6월 14일
Question is confusing on figure numbering. Below saves 48 figures (16 each of s1, s2, and s3). Since you are saving the figures, no reason to plot all of them in window (yoiu can always pull up the saved figures).
T=readtable('88.xlsx');
T1=table2cell(T);
begin=readmatrix('count1.csv');
n=1;
for i=1:size(T,1)
name=[T{i,1}];
age=T1{i,2};
BP=T1{i,3};
res1=0;
for res=[0 1]
Tobegin(res,name,age,BP,res1,n);
n=n+1;
end
res1=1;
for res=[0 1]
Tobegin(res,name,age,BP,res1,n);
n=n+1;
end
if begin<size(T,1)
begin=begin+1;
writematrix(begin,'count1.csv')
else
writematrix(1,'count1.csv')
end
end
function Tobegin(res,name,age,BP,res1,n)
f=[8 9 10 11 12];
s1=[1 2 5 2 3];
figureplot(f,s1,n,'1')
s2=[2 4 8 9 10];
figureplot(f,s2,n,'2')
s3=s1+s2;
figureplot(f,s3,n,'3')
rowsofdata1=[name age BP f s1 res res1];
rowsofdata2=[name age BP f s2 res res1];
writecell(rowsofdata1,'input1.csv','WriteMode','append');
writecell(rowsofdata2,'input2.csv','WriteMode','append');
end
function figureplot(f,s1,n,n2)
plot(f,s1,f,10*log(s1));
saveas(gca,['Figure',num2str(n),'_plot_s',n2]);
end
  댓글 수: 2
Rakesh Roshan
Rakesh Roshan 2022년 6월 15일
i am sorry sir but it didn't work for me.. i am getting only db plots and not magnitude
function figureplots1 (f,s1,n)
plot(f,s1,'-r','LineWidth',3)
ax=gca;ax.YAxis.Exponent=0;grid on
ylabel('S1')
xlabel('freq')
title('dB')
saveas(gca,['Figure',num2str(n),_S1_dB,'.jpg');
plot(f,10*log(s1),'-r','LineWidth',3)
ax=gca;ax.YAxis.Exponent=0;grid on
ylabel('S1')
xlabel('freq')
title('Magnitude')
saveas(gca,['Figure',num2str(n),_S1_abs,'.jpg');
function figureplots2 (f,s2,n)
plot(f,s2,'-r','LineWidth',3)
ax=gca;ax.YAxis.Exponent=0;grid on
ylabel('S2')
xlabel('freq')
title('dB')
saveas(gca,['Figure',num2str(n),_S2_dB,'.jpg');
plot(f,10*log(s2),'-r','LineWidth',3)
ax=gca;ax.YAxis.Exponent=0;grid on
ylabel('S2')
xlabel('freq')
title('Magnitude')
saveas(gca,['Figure',num2str(n),_S2_abs,'.jpg');
For 1st count properly all plots are coming but only dB not magnitude .i need to plot db and magnitude separately in two figure windows respectively numbered as 1,2,3,4,5
Rakesh Roshan
Rakesh Roshan 2022년 6월 15일
hello sir plz respond

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


Image Analyst
Image Analyst 2022년 6월 15일
Create a filename with sprintf, like
outputFolder = 'c:\wherever';
if ~isfolder(outputFolder)
mkdir(outputFolder)
end
for i=1:size(T,1)
% code to generate plots
% Now save the latest figure.
baseFileName = sprintf('Plot %2.2d.png', i);
fullFileName = fullfile(outputFolder, baseFileName);
exportgraphics(gca, fullFileName);
end
  댓글 수: 1
Rakesh Roshan
Rakesh Roshan 2022년 6월 15일
sir i am using 2018a version export graphics command is not available

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

카테고리

Help CenterFile Exchange에서 Graphics Object Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by