Hey there. I need to to put datetime scale in x-axis. I attached the values in a xls file.
m3=[x1,x2,x3,x4];
startDate = datenum('10-2006');
endDate = datenum('11-2099');
xdate = linspace(startDate,endDate,373); %number of months
figure
bar(xdate,m3);
dateaxis('x','mm-yyyy','keeplimlits');
legend({'X1','X2','X3','X4'},'Location','Southeast');
Till now, I only got to put the datenum and only x1 appears. When I execute the code below, it runs (exception to datetime scale).
m3=[x1,x2,x3,x4];
figure
bar(m3);
legend({'X1','X2','X3','X4'},'Location','Southeast');
Is it possible to solve it? Thanks :-)

 Akzeptierte Antwort

Star Strider
Star Strider am 29 Jan. 2019

1 Stimme

The amount of data obscures all detail, however this works:
[D,S] = xlsread('matlab.xlsx');
Q1 = D(1:5,:);
m3 = D(:,2:5);
startDate = datenum('10-2006','mm-yyyy');
endDate = datenum('11-2099','mm-yyyy');
xdate = linspace(startDate,endDate,373); %number of months
figure
bar(xdate,m3);
datetick('x','mm-yyyy','keeplimits');
legend({'X1','X2','X3','X4'},'Location','Southeast');
Experiment to get the result you want.

4 Kommentare

rpid
rpid am 29 Jan. 2019
[D,S] = xlsread('matlab.xlsx');
Q1 = D(1:5,:);
m3 = D(:,2:5);
startDate = datenum('10-2006','yyyy');
endDate = datenum('11-2099','yyyy');
xdate = linspace(startDate,endDate,373); %number of months
figure
bar(xdate,m3);
datetick('x','yyyy','keeplimits');
legend({'X1','X2','X3','X4'},'Location','Southeast');
I did a small adjust in the date: 'yyyy'. Now it's working, thank you!
Star Strider
Star Strider am 29 Jan. 2019
As always, my pleasure!
(Also, ‘Q1’ needs to be removed. I used it to peek at ‘D’ and forgot to remove it from my posted code.)
Farshid R
Farshid R am 22 Dez. 2020
Hi
Good time
I wrote this code but it gives an error
Please help me
thank you
n=100;
u1=[0,0]';
X1=[-4,-2,0]';
% p=data.PredictionHorizon;
a=0.9;h=0.9;
cp1=1;cp2=1;cp3=1;
% c1=0;c2=0;c3=0;
for j=1:n
c1(j)=(1-(1+a)/j)*cp1;
c2(j)=(1-(1+a)/j)*cp2;
c3(j)=(1-(1+a)/j)*cp3;
cp1=c1(j); cp2=c2(j); cp3=c3(j);
end
% initial conditions setting:
v1(1)=u1(1);
w1(1)=u1(2);
x1(1)=X1(1); y1(1)=X1(2); z1(1)=X1(3);
% calculation of phase portraits /numerical solution/:
for i=2:n
x1(i)=h*cos(z1(i-1))*v1(i-1) - memo(x1, c1, i);
y1(i)=h*sin(z1(i-1))*v1(i-1)-memo(y1, c2, i);
z1(i)=h*w1(i-1)-memo(z1, c3, i) ;
end
%%
function [yo] = memo(r, c, k)
%
temp = 0;
for j=1:k-1
temp = temp + c(j)*r(k-j);
end
yo = temp;
%
%%%%% error
Index exceeds the number of array elements (1).
Error in exocstrstateFcnCT1 (line 28)
x1(i)=h*cos(z1(i-1))*v1(i-1) - memo(x1, c1, i);
Star Strider
Star Strider am 23 Dez. 2020
Farshid R —
Post this as a new Question. I will delete your Comment in a few hours.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by