Graph two curves together (datetime format and double format)

2 次查看(过去 30 天)
Hi, thank you so much for reading me, i am using matlab 2019a, and i have this problem, i want to graph a function of curvefitting with my original curve, but i can't for this error that appears (attach photo) , i want the two graphs together .......
thank you so much for your valious time
tEnersol=readtable('solar.xlsx','sheet','EneDics'); % read into a table object
tEnersol.Properties.VariableNames={'Rad','Dia'}; % assign variable names
% yr=2014; % need the proper year
tEnersol.Date=datetime(yr,1,tEnersol.Dia); % and create a date column
hB=plot(tEnersol.Date,tEnersol.Rad, '.r'); hold on % bar plot against actual date
hAx=gca; % get axes handle...
xlim([datetime(2014,1,1) datetime(2014,12,12)]) % set limit to cover the full year
hAx.XAxis.TickLabelFormat='MM'; % show day of MONTH
% xticklabels(cellstr(tEnersol.Date(xticks))) % use the date string as tick labels
hAx.XTickLabelRotation=45; % rotate so can have chance to read...
xlabel('Mes del año, TMYE'), ylabel('Irradiancia solar máxima [KWh/m^2]');
a1= 2329
b1= 0.6522
c1= 0.95
a2= 1519
b2= 0.7781
c2= -2.545
d = (1:1:365);
w = a1.*sin(b1.*d+c1) + a2.*sin(b2.*d+c2)
plot(d,w,'.-b'); hold off

采纳的回答

Walter Roberson
Walter Roberson 2020-8-5
hB=plot(tEnersol.Date,tEnersol.Rad, '.r'); hold on % bar plot against actual date
That is the first plot in the axes, and it establishes that the x axes is to be based upon datetime values.
plot(d,w,'.-b'); hold off
Your d is not datetime values, just pure numbers. You cannot plot a pure number variable in an axes that is already a datetime axes. So...
D = datetime(yr, 1, d);
plot(D, w, '.-b')
  10 个评论
Walter Roberson
Walter Roberson 2020-8-6
text() or legend() to put the equation in. You will probably want to use 'Interpreter', 'latex'

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by