Filter löschen
Filter löschen

Plot title divided into rows, why?!

3 Ansichten (letzte 30 Tage)
Henry Eriksson
Henry Eriksson am 29 Mär. 2019
Kommentiert: Star Strider am 30 Mär. 2019
I have attached my code below.
When I run this code, the title to my plots look like this (see attached picture). Why is this? In the code, the array "M_G_gsm" is just an array of strings. This was not previously used to make the title, then I just wrote the title by hand. I believe this problem has to do with the string array, but I cant figure out how. Can anyone suggest a solution? I just want the title to become a row, like normal.
Thank you in advance
Henry
E2M1_G1_all_packagesposition2A.png
clear
clc
material = 1
geometry = 1
if material==1 & geometry == 1
M_G_gsm=["M1","G1"];
gsm=["290gsm"];
positions=['5']
numberofpositions = 5;
numberofpackages=10;
elseif material==1 & geometry == 2
M_G_gsm=["M1","G2"];
gsm=["290gsm"];
positions=['9']
numberofpositions = 9;
numberofpackages=10;
elseif material==2 & geometry == 1
M_G_gsm=["M2","G1"];
gsm=["315gsm"];
positions=['5']
numberofpositions = 5;
numberofpackages=11;
elseif material==3 & geometry == 1
M_G_gsm=["M3","G1"];
gsm=["340gsm"];
positions=['5']
numberofpositions = 5;
numberofpackages=13;
end
positionletter=['A';'B'];
for packagenumber = [1:numberofpackages] %FIRST 4 FOR LOOPS ARE JUST FOR DATA COLLECTION!
for positionnumber = [1:numberofpositions]
for pos=[1:2]
filename=strcat(M_G_gsm(1),'_',M_G_gsm(2),'_','P',num2str(packagenumber),'_',num2str(positionnumber),positionletter(pos),'_lf.csv');
if exist(filename,'file') == 0, continue, end
A = importdata(filename); %Importing the CSV file
package{packagenumber}{positionnumber}{pos} = A.data; %Naming the numerical array
time{packagenumber}{positionnumber}{pos}=package{packagenumber}{positionnumber}{pos}(:,1); %Biotac time vector is separated from package{i}
E_package{packagenumber}{positionnumber}{pos}=package{packagenumber}{positionnumber}{pos}(:,2:20); %Separating the sensors E1 through E19 from package{i}
PDC{packagenumber}{positionnumber}{pos}=package{packagenumber}{positionnumber}{pos}(:,21); %PDC array from CSV-file
globalforce{packagenumber}{positionnumber}{pos}=package{packagenumber}{positionnumber}{pos}(:,24); %Force array from CSV-file
x0=0;
y0=0;
width=800; %Setting height of figures
height=width * (8/11); % height to width ratio is 8:11 .
for i=1:19 %For each sensor indes, 1 through 19
E_norm{packagenumber}{positionnumber}{pos}(:,i)=((4095./E_package{packagenumber}{positionnumber}{pos}(:,i))-1)*10;%Creates an array of bit values from the sensors. Every cell in every column in E_temp is divided by the largest element in E_temp
end
end
end
end
% clear positionnumber pos packagenumber i
%FOLLOWING FOR-LOOPS ARE FOR PLOTTING ONLY
%M1_G1_290, contains 10 packages, 5 positions from A to B
times=(0:0.010:80);
for i=[2,3,5,7,8,9,10,12,13,15];
for pos=[1:2];
filename=strcat(M_G_gsm(1),'_',M_G_gsm(2),'_','P',num2str(packagenumber),'_',num2str(positionnumber),positionletter(pos),'_lf.csv');
figuresdir = strcat('D:\thesis_figures\Sensors_at_all_positions_and_packages\',M_G_gsm(1),'_',M_G_gsm(2),'_',gsm,'_','E',num2str(i),' positions ',positionletter(pos),'\');
mkdir(figuresdir); %The figure folder for each package is created
c=0;
for positionnumber=[1:numberofpositions]
lengths=5000*ones(1,numberofpositions);
impedances_all_max=0.00001*ones(1,numberofpositions);
impedances_all_min=5000*ones(1,numberofpositions);
for packagenumber=[1:numberofpackages]
c=c+1;
filename=strcat(M_G_gsm(1),'_',M_G_gsm(2),'_','P',num2str(packagenumber),'_',num2str(positionnumber),positionletter(pos),'_lf.csv');
if ~exist(filename,'file')
continue
end
lengths(1,packagenumber)=length(E_norm{packagenumber}{positionnumber}{pos}(:,i));
PDC_temp_truncated{packagenumber}{positionnumber}{pos}=PDC{packagenumber}{positionnumber}{pos}(1:min(lengths(1,packagenumber)),1);
[maxValuePDC,maxIndexPCD] = max(PDC_temp_truncated{packagenumber}{positionnumber}{pos});
E_norm_temp=E_norm{packagenumber}{positionnumber}{pos}(:,i);
E_norm_temp_truncated=E_norm_temp(1:min(lengths(1,packagenumber)),1);
fromStartToMax_Esensor{packagenumber}{positionnumber}{pos}=E_norm_temp_truncated(1:maxIndexPCD,1);
findFirstMin{packagenumber}{positionnumber}{pos}(:,i)=min(fromStartToMax_Esensor{packagenumber}{positionnumber}{pos});
dropBeforeMax_Esensor{packagenumber}{positionnumber}{pos}(1,i)=E_norm_temp(1,1) - findFirstMin{packagenumber}{positionnumber}{pos}(:,i);
if pos==1
dropBeforeMax_posA(c,i)=dropBeforeMax_Esensor{packagenumber}{positionnumber}{pos}(1,i);
else
dropBeforeMax_posB(c,i)=dropBeforeMax_Esensor{packagenumber}{positionnumber}{pos}(1,i);
end
impedances_all_min(1,packagenumber)=min(E_norm{packagenumber}{positionnumber}{pos}(:,i)); %Fins maximum
impedances_all_max(1,packagenumber)=max(E_norm{packagenumber}{positionnumber}{pos}(:,i));
end
y_min=min(impedances_all_min)-0.20; %The minimum y-value in the coming plot
y_max=max(impedances_all_max)+0.20; %The maximum y-value in the coming plot
min_length=min(lengths);
common_time=times(1:min_length);
for packagenumber =[1:numberofpackages]
filename=strcat(M_G_gsm(1),'_',M_G_gsm(2),'_','P',num2str(packagenumber),'_',num2str(positionnumber),positionletter(pos),'_lf.csv');
if ~exist(filename,'file'), continue, end
%%%%%%PLOTTING EACH E-SENSOR IMPEDANCE FOR SEVERAL POSITIONS IN ONE PLOT%%%%%%
E_norm_temp=E_norm{packagenumber}{positionnumber}{pos}(:,i);
E_norm_temp_truncated=E_norm_temp(1:min_length,1);
figurename=strcat('E ',num2str(i),M_G_gsm(1),'_',M_G_gsm(2),'_','all_packages ','position ',num2str(positionnumber),positionletter(pos));
outfile=fullfile(figuresdir,strcat(figurename,'.png'));
outfile2=fullfile(figuresdir,strcat(figurename,'.fig'));
f=figure(1);
hold on
legendstr=sprintf('Package %d , pos %d%c',packagenumber,positionnumber,char('A'+ pos-1));
hL(packagenumber,1)=plot(common_time,E_norm_temp_truncated,'displayname',legendstr);
ylabel('Biotac Impedance [k \Omega]');
title(['E',num2str(i),M_G_gsm(1),M_G_gsm(2),gsm,'all packages ','position ',num2str(positionnumber),positionletter(pos)]);
xlabel('Time');
ylim([y_min y_max]);
legend;
end
set(f,'position',[x0,y0,width,height]);
saveas(f,outfile);
saveas(f,outfile2);
clf(f);
end
end
end
tempE2A=dropBeforeMax_posA(:,2);
tempE2B=dropBeforeMax_posB(:,2);
AVG_dropBeforeMax_posA_E2=mean(tempE2A(tempE2A>0));
AVG_dropBeforeMax_posB_E2=mean(tempE2B(tempE2B>0));
tempE12A=dropBeforeMax_posA(:,12);
tempE12B=dropBeforeMax_posB(:,12);
AVG_dropBeforeMax_posA_E12=mean(tempE12A(tempE12A>0));
AVG_dropBeforeMax_posB_E12=mean(tempE12B(tempE12B>0));
%%
for packagenumber =[1:numberofpackages];
for pos=[1:2]
for i=[2,3,5,7,8,9,10,12,13,15]
lengths=5000*ones(1,numberofpositions);
impedances_all_max=0.00001*ones(1,numberofpositions);
impedances_all_min=5000*ones(1,numberofpositions);
for positionnumber=[1:numberofpositions]
filename=strcat(M_G_gsm(1),'_',M_G_gsm(2),'_','P',num2str(packagenumber),'_',num2str(positionnumber),positionletter(pos),'_lf.csv');
if ~exist(filename,'file'), continue, end
lengths(1,positionnumber)=length(E_norm{packagenumber}{positionnumber}{pos}(:,i));
impedances_all_min(1,positionnumber)=min(E_norm{packagenumber}{positionnumber}{pos}(:,i)); %Fins maximum
impedances_all_max(1,positionnumber)=max(E_norm{packagenumber}{positionnumber}{pos}(:,i));
end
y_min=min(impedances_all_min)-0.20; %The minimum y-value in the coming plot
y_max=max(impedances_all_max)+0.20; %The maximum y-value in the coming plot
min_length=min(lengths);
common_time=times(1:min_length);
for positionnumber=[1:numberofpositions]
filename=strcat(M_G_gsm(1),'_',M_G_gsm(2),'_','P',num2str(packagenumber),'_',num2str(positionnumber),positionletter(pos),'_lf.csv');
if ~exist(filename,'file'), continue, end
figuresdir2 = strcat('D:\thesis_figures\PositionComparison\',M_G_gsm(1),'_',M_G_gsm(2),'_',gsm,'_','P',num2str(packagenumber),'_positions 1-',positions,'_',positionletter(pos),'\');
mkdir(figuresdir2); %The figure folder for each package is created
%addpath(figuresdir); %The figure folder for each package is added to the path so that MATLAB can actually put files in there
%%%%%%PLOTTING EACH E-SENSOR IMPEDANCE FOR SEVERAL POSITIONS IN ONE PLOT%%%%%%
E_norm_temp=E_norm{packagenumber}{positionnumber}{pos}(:,i);
E_norm_temp_truncated=E_norm_temp(1:min_length,1);
figurename2=strcat('E ',num2str(i),M_G_gsm(1),'_',M_G_gsm(2),'_','P',num2str(packagenumber),' positions 1-',positions,positionletter(pos));
outfile=fullfile(figuresdir2,strcat(figurename2,'.png'));
outfile2=fullfile(figuresdir2,strcat(figurename2,'.fig'));
f=figure(2);
hold on
legendstr=sprintf('Position %d%c',positionnumber,char('A'+ pos-1));
hL(positionnumber,1)=plot(common_time,E_norm_temp_truncated,'displayname',legendstr);
%plot(common_time,E_norm_temp_truncated);
%Plots all the impedance curves for the same sensor along different positions
ylabel('Biotac Impedance [k \Omega]');
title(['E',num2str(i),'-',M_G_gsm(1),'-',M_G_gsm(2),'-',gsm,'-','P',num2str(packagenumber),'_ ','positions 1-',positions,' ',positionletter(pos)]);
xlabel('Time');
ylim([y_min y_max]);
legend;
end
set(f,'position',[x0,y0,width,height]);
saveas(f,outfile);
saveas(f,outfile2);
clf(f);
end
end
end

Akzeptierte Antwort

Star Strider
Star Strider am 29 Mär. 2019
It is probably because your concatenation is having unforeseen effects.
Try this instead:
title(sprintf('E%d %s %s %s all packages position %d%s', i, M_G_gsm(1), M_G_gsm(2), gsm, positionnumber,positionletter(pos)))
Make any necessary changes to get the result you want. When it works the way you want it to, make similar changes to your other title calls.
  2 Kommentare
Henry Eriksson
Henry Eriksson am 29 Mär. 2019
This worked wonders, THANK YOU! :) Im learning so much from this forum, its great!
Star Strider
Star Strider am 30 Mär. 2019
As always, my pleasure!
That’s why we’re here!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by