Assuming that your problem has 3 dimensions, so you have for example
where 10 is the initial condition for dim 1, etc, ODE45 will call the function f that it receives as 1st arg, referenced by its handle @f, with the following parameters:
where ... symbolize extra parameters that can be defined as extra parameters in the call to ODE45, or through an appropriate definition of the function/handle that you pass as 1st argument. You have therefore to pass a function which takes t and x in this order. If you have the freedom to define f_xyz, you should then define it as follows
f_xyz = @(t, x) [-1 1 0;2 -1 -x(1);0 x(2) -3] * x ;
If you cannot modify f_xyz, you can pass a handle on an intermediary anonymous function which plays the role of interface, adjusting parameters orders/structure:
f_xyz = @(x,y,z) [-1 1 0;2 -1 -x;0 y -3]*[x;y;z];
[t, x_t] = ode45( @(t, x) f_xyz(x(1), x(2), x(3)), ...
Note that you can give a name to this interface function if you prefer not to deal with anonymous functions (but you'll often see people using anonymous functions here)..
interf = @(t, x) f_xyz(x(1), x(2), x(3)) ;
[t, x_t] = ode45( interf, ...
Hope it helps