MATLAB: How to take the derivative of data from a .csv file and store it in a table

csvderivativegradientMATLAB

I am trying to calculate acceleration from time and velocity using the code:
x=readtable('Drive Cycles EPA urban full.csv');
V=x(:,2)
T=x(:,1)
A=gradient(V(:))/gradient(T(:))
I have also tried diff instead of gradient. They both return the error:
Error using test (line 4)
Subscripting a table using linear indexing (one subscript) or multidimensional indexing (three or more subscripts) is not
supported. Use a row subscript and a variable subscript.
Any suggestions would be a huge help.
Thank you!

Best Answer

x is a table already. Therefore, V and T are also tables.
See this doc page on accessing data in a table. Basically, to do what you are trying to do, you need to use curly braces.
V=x{:,2}
T=x{:,1}
Assuming your table variables are var1 and var2, you could also do the following
V=x.var2
T=x.var1
Finally, you might find it more helpful to use meaningful variable names.
x.Properties.VariableNames = {'T','V'};
A=gradient(x.V)/gradient(x.T)
Related Question