MATLAB Answers

How to change the plot title and file name when saving it to a for loop

조회 수: 14(최근 30일)
Richard Wood
Richard Wood 2020년 6월 25일
답변: the cyclist 2020년 6월 25일
Hello everyone
I have the following arrays of relevance to the question:
substrates=["MgO" "SiO2" "W"];
substrates_title=["MgO" "SiO$_2$" "W"];
which I want to be introduced in the title of a plot and in the name of the file that encapsulates the aforementioned plot in a for loop. For that, I have written preliminarily the following lines related to this:
t1=title(['Thermal background $T=\,$',num2str(Temperature(i)),' K, ',substrates_title(l),''],'FontSize',14,'interpreter','latex')
...
saveas(gcf,fullfile(outputdir,['Scaling_Based_Temperature_Dependent_Phase_Diagram_Thermal_Background_T=',num2str(Temperature(i)),'_K_with_Joule_Heating_',substrates(l),'_Substrate.pdf']))
but this does not work, exceptly the num2str(Temperature(i)) that works perfectly.
Any suggestion?

채택된 답변

the cyclist
the cyclist 2020년 6월 25일
Part of the problem is that you are mixing character arrays and strings. The following works (after you set your own outputdir):
i = 1;
l = 1;
Temperature(i) = 273.15;
outputdir = 'SET ME TO WHAT YOU WANT!!';
substrates={'MgO' 'SiO2' 'W'};
substrates_title={'MgO' 'SiO$_2$' 'W'};
t1=title(['Thermal background $T=\,$',num2str(Temperature(i)),' K, ',substrates_title{l},''],'FontSize',14,'interpreter','latex')
fname = ['Scaling_Based_Temperature_Dependent_Phase_Diagram_Thermal_Background_T=',num2str(Temperature(i)),'_K_with_Joule_Heating_',substrates{l},'_Substrate.pdf'];
saveas(gcf,fullfile(outputdir,fname));
Note that I used a cell array of character arrays, rather than strings. One could probably have done the opposite.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by