Convert datetime to milliseconds

121 views (last 30 days)
Hello folks, I am trying to do a fourier transform of a signal, but I need a time vector like this: t(1) t(2)... t(n). I am using Matlab's import tool code below, and it gives me the time as a datetime vector, which does not work with my fourier transform function. Is there any way to convert datetime to a vector starting from zero in milliseconds? Thanks in advance!
close all
clear all
filename = 'myfile.txt';
delimiter = ',';
startRow = 2;
endRow = inf;
formatSpec = '%{yyyy-MM-dd HH:mm:ss.SSSSSSSSS}D%f%f%f%f%f%f%[^\n\r]';
fileID = fopen(filename,'r');
dataArray = textscan(fileID, formatSpec, endRow-startRow+1, 'Delimiter', delimiter, 'MultipleDelimsAsOne', true, 'EmptyValue' ,NaN,'HeaderLines', startRow-1, 'ReturnOnError', false);
fclose(fileID);
% Allocate imported array to column variable names
time = dataArray{:, 1};
Ua_hela = dataArray{:, 2};
Ub_hela = dataArray{:, 3};
Uc_hela = dataArray{:, 4};
Ia_hela = dataArray{:, 5};
Ib_hela = dataArray{:, 6};
Ic_hela = dataArray{:, 7};
clearvars filename delimiter startRow endRow formatSpec fileID dataArray ans;

Accepted Answer

Walter Roberson
Walter Roberson on 8 May 2016
Edited: Walter Roberson on 9 May 2016
For datetime objects,
ms = milliseconds(time - time(1));

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 8 May 2016
Edited: Azzi Abdelmalek on 8 May 2016
%-----Example------------------------
v1=datenum('01-01-2016','dd-mm-yyyy');
pas=1/(24*60*1000);
v=v1+sort(randperm(50,5)*pas)
d=datestr(v,'dd-mm-yyyy HH:MM:SS:FFF')
%--------------The code-----------------
dd=datevec(d,'dd-mm-yyyy HH:MM:SS:FFF')
a=dd(1:end-1,:)
b=dd(2:end,:)
out1=arrayfun(@(x) etime(b(x,:),a(x,:)),(1:size(a,1))')
out=cumsum([0;out1])*1000

Tags

Products

Community Treasure Hunt

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

Start Hunting!