MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Kesni savitri on 20 May 2013

i have a trouble to make my task,

i use gui matlab to show a graph.

the graph i build from the calculated differential equation use ode45 with step size 1 hour.

there is 1 until 2160 hour. and i want to show the graph time unit in 'days' without change the step size of my ode45, so how can i do?

Answer by Walter Roberson on 20 May 2013

Accepted answer

For example,

plot(t(:,1), y(:,1)) curtick = get(gca, 'xtick'); newlab = cellstr( num2str( curtick(:) ./ 24 ) ); set(gca, 'xticklabel', newlab)

Kesni savitri on 20 May 2013

thanks for you answer, but i have 8 differensial equation, so i write...

plot(t(:,1), y(:,1),y(:,2),y(:,3),y(:,4),y(:,5),y(:,6),y(:,7),y(:,8)) curtick = get(gca, 'xtick'); newlab = cellstr( num2str( curtick(:) ./ 24 ) ); set(gca, 'xticklabel', newlab)

and was error to show the graph.

??? Error using ==> plot Data must be a single matrix Y or a list of pairs X,Y

Error in ==> ruunmodel at 5 plot(t(:,1), y(:,1),y(:,2),y(:,3),y(:,4),y(:,5),y(:,6),y(:,7),y(:,8))

??? Error using ==> plot Data must be a single matrix Y or a list of pairs X,Y

Error in ==> ruunmodel at 5 plot(t(:,1), y(:,1),y(:,2),y(:,3),y(:,4),y(:,5),y(:,6),y(:,7),y(:,8))

Walter Roberson on 20 May 2013

plot(t(:,1), y)

When you specify multiple numeric vector arguments for plot() you need to use the pattern x1 y1 x2 y2 x3 y3 ... Alternately you can use a common x, and specify the y as a matrix where the *columns* of y form the different lines. Your y(:,1), y(:,2) etc. are already columns in the "y" matrix, so you can give it as a single argument to draw all 8 of the columns.

## 0 Comments