## Keep getting this error and I cannot figure out why: Dimensions of arrays being concatenated are not consistent.

### The Protoulis (view profile)

on 11 Nov 2018
Latest activity Edited by madhan ravi

on 11 Nov 2018

I have the following code trying to solve differential equation of second order:
[t,X] = ode45(@(t,X) odefun_4(t,X,u), [0 10], [0;0]);
function dx = odefun_4(t,x,u)
%xdisp(u);
m = 15;
b = 0.2;
k = 2;
%u = interp1(ut,u,t);
dx = [x(2); u/m - (b/m)*x(2) - (k/m)*x(1)];
end
Vector u is a 1x100 vector. I expect to get a 2x100 matrix as the return value. What am I doing wrong ?

### Release

R2018a

on 11 Nov 2018

on 11 Nov 2018

EDITED
m = 15;
b = 0.2;
k = 2;
ut = linspace(0, 10);
u = 5 * sin(2 * ut) + 10.5; % input of our system - external forc
dx = @(t,x,u)[x(2); u/m - (b/m)*x(2) - (k/m)*x(1)]
for u=u
[t,X] = ode45(@(t,x)dx(t,x,u), [0 10], [0;0]); %function calling
plot(t,X)
hold on
end

on 11 Nov 2018
Each plot represents the change in the system according to each force this is the only way to solve your problem because the reason is like I told you before you can't put column vector with 100 values into a matrix of lesser column elements
The Protoulis

### The Protoulis (view profile)

on 11 Nov 2018
Thank you very much!