سؤال

I am using MATLAB to get output from a tracking device for gloves. I basically have:

read = fgets(tracker);
tic
k = 1;

while ischar(read)
   read = fgets(tracker);
   toc

   k = k+1;
end

I want to take 'read', which is a string, and save it with a time stamp from 'toc' from the while loop and be able to save it in a cell array or text file for post processing. This is for a hand tracker in an experiment.

Any thoughts? Thanks

هل كانت مفيدة؟

المحلول

I'd consider using a struct array (non-scalar struct).

Initialize it:

tracked = struct('read','','elapsed',[]);

Fill it out:

tic % then begin reading
% first iteration
k = 1;
tracked(k).read = 'first';
tracked(k).elapsed = toc;
% second iteration
k = 2;
tracked(k).read = 'second';
tracked(k).elapsed = toc;

At this point you will have a 1x2 struct array, from which you can easily extract data:

>> tracked
tracked = 
1x2 struct array with fields:
    read
    elapsed
>> elapsedTimes = [tracked.elapsed]
elapsedTimes =
   1.0e+03 *
    5.8084    5.8212
>> readData = {tracked.read}
readData = 
    'first'    'second'

Of course you could also do a N-by-2 cell array initially, where each row is iteration k and the two columns are the elapsed time and read character data.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top