フィルターのクリア

Plot title divided into rows, why?!

3 ビュー (過去 30 日間)
Henry Eriksson
Henry Eriksson 2019 年 3 月 29 日
コメント済み: Star Strider 2019 年 3 月 30 日
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

採用された回答

Star Strider
Star Strider 2019 年 3 月 29 日
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 件のコメント
Henry Eriksson
Henry Eriksson 2019 年 3 月 29 日
This worked wonders, THANK YOU! :) Im learning so much from this forum, its great!
Star Strider
Star Strider 2019 年 3 月 30 日
As always, my pleasure!
That’s why we’re here!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by