MATLAB Answers

fiko bil

How can I change the title of variables ?

Asked by fiko bil
on 15 Nov 2019 at 16:06
Latest activity Edited by the cyclist
on 15 Nov 2019 at 16:31
Hello, I am having problem when I want to change the title of the variables to be seen on the each plot.
for ii=1:length(ending_cell)
var={'yhat', 'URhat', 'chat', 'what'};
for jj=1:length(var)
for jj=1:length(var)
eval(['irf1.' var{1,jj},ending_cell{1,ii}]);
eval(['irf2.' var{1,jj},ending_cell{1,ii}]);
hold on
plot(HOR,[eval(['irf1.' var{1,jj},ending_cell{1,ii}])],'-k',HOR,[eval(['irf2.' var{1,jj},ending_cell{1,ii}])],'--r','LineWidth',2) ;
axis tight
legend('No labor friction(JQ)','Labor f');
title([var{1,jj}] )
Any idea how I can chnage it ?
Thank you


on 15 Nov 2019 at 16:17
Can you possibly let us know what exactly you want this to output? This will make it easier for people to help.
Do NOT use eval for accessing fields of a structure, simply use dynamic fieldnames instead:
And of course do NOT access variable names dynamically:
Your code would be a lot simpler, easier to debug,and more efficient if you avoided eval.

Sign in to comment.


2 Answers

Answer by fiko bil
on 15 Nov 2019 at 16:24

Than you for the reply.
Well, I just simply want to change the name of variables yhat, URhat, chat, what to be Output, Unemployment, Consumption, wage. They need to be appear as the title of the plots I get.
There is no problem for code to work I just wanted to make some changes.
Thank you

  1 Comment

on 15 Nov 2019 at 16:29
There is no problem for code to work I just wanted to make some changes.
If you have a problem making changes that often implies there is a problem with the code! Easy to use code is also easy to change and understand. I can't understand what on earth your code is doing through all the evals in order to make a suggestion that would, in all likelihood, be trivial with simpler code.

Sign in to comment.

Answer by ME
on 15 Nov 2019 at 16:29

You can always also use:
clear vars yhat URhat chat what
if you want to remove the duplicates with the old naming.
I may be missing something, so if this isn't what you want then let me know and I'll see what I can do to help.


Sign in to comment.