Hello,
I do not know but I could not figure out how to fix a problem with xticks (I hate it). I also attach the data I am using. Bellow, are a few code lines
S=load('LandauData.mat');
data=S.data;
L=-2.;R=2.2;
t=dt.*(0:length(data)-1);
Unrecognized function or variable 'dt'.
plot(t,data,'-k');
hold on;
plot(t,0.*t+L,'--r');
plot(t,0.*t+R,'--r');
ylim([-10 11.7]);
xlabel('time');
ylabel('State, x');
title('Landau model');
yticks([-10 -6 -2 2 6 10]);
yticklabels([-10 -6 -2 2 6 10]);
xticks([1 200 400 600 800 1000]);
xticklabels({'0','200','400','600','800','1000'})
I do not know why I get the folowing error message
Index exceeds the number of array elements. Index must not exceed 6.
Thanks for your kind help in advance!
Babak

5 Commenti

Dyuman Joshi
Dyuman Joshi il 24 Nov 2023
Parameter dt is not defined in your code above.
Sorry, it is 0.01
What's the problem here?
Though I'm not sure why you have labeled x=1 as 0.
S=load('LandauData.mat');
data=S.data;
L=-2.;R=2.2;
dt = 0.01;
t=dt.*(0:length(data)-1);
[a,b] = bounds(t)
a = 0
b = 999.9900
plot(t,data,'-k');
hold on;
plot(t,0.*t+L,'--r');
plot(t,0.*t+R,'--r');
ylim([-10 11.7]);
xlabel('time');
ylabel('State, x');
title('Landau model');
yticks([-10 -6 -2 2 6 10]);
yticklabels([-10 -6 -2 2 6 10]);
xticks([1 200 400 600 800 1000]);
xticklabels({'0','200','400','600','800','1000'})
So, you did not detect any problem.
But, I could fix it after pressing clear. I do not know, perhaps something was interfering with my code lines. But, now it
works.
BTW, I cannot accept your answer here (I could not find any botton about it)

Accedi per commentare.

 Risposta accettata

It works here without problem.
S=load(websave("LandauData.mat", "https://www.mathworks.com/matlabcentral/answers/uploaded_files/1551452/LandauData.mat"));
data=S.data;
L=-2.;R=2.2;
dt = 0.01;
t=dt.*(0:length(data)-1);
plot(t,data,'-k');
hold on;
plot(t,0.*t+L,'--r');
plot(t,0.*t+R,'--r');
ylim([-10 11.7]);
xlabel('time');
ylabel('State, x');
title('Landau model');
yticks([-10 -6 -2 2 6 10]);
yticklabels([-10 -6 -2 2 6 10]);
xticks([1 200 400 600 800 1000]);
xticklabels({'0','200','400','600','800','1000'})

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by