MatlabCommands: Difference between revisions

From University of Washington - Ubicomp Research Page
Jump to navigationJump to search
mNo edit summary
mNo edit summary
 
Line 16: Line 16:
     while( printCounter >= 0.00001 )    printCounter = printCounter - 1;    fprintf( '.' ); end         
     while( printCounter >= 0.00001 )    printCounter = printCounter - 1;    fprintf( '.' ); end         
end
end
fprintf( '\n' );
</matlab>
</matlab>



Latest revision as of 20:16, 22 February 2007

Overview

Some useful Matlab commands

Printing Progress bars

If we want to print a progress display (i.e. 0 to 100% of completion and we know how many iterations there are we use the following code to do the printing of the dots for us. Of course if you use fprintf inside the loop this doens't work so well.

<matlab>printDelay = 46/outputDuration; printCounter = 0; fprintf( 'Writing frames\n' ); fprintf( ' 0%% 20%% 40%% 60%% 80%% 100%%\n' ); fprintf( ' | | | | | |\n' ); fprintf( ' ' );

while(x)

   printCounter = printCounter + printDelay;
   while( printCounter >= 0.00001 )    printCounter = printCounter - 1;    fprintf( '.' ); end         

end fprintf( '\n' ); </matlab>


Unix Timestamps

    The unix timestamps used in uwar files are counting the number of milliseconds since the 1/1/1970 epoch. So if we're given the timestamp 1171308738000, this corresponds to 12-Feb-2007 12:32:18.
    • to get a normal unix timestamp we need to divide by /1000.
      • 1171308738000/1000 = 1171308738 (Mon, 12 Feb 2007 19:32:18 GMT)
    • To convert this to a Matlab time (where 1.0 = 1 day since the 1/1/000 epoch), we need to convert the timestamp into days and add in the 1/1/1970 epoch offset, we use -7 to conver the data to the PST timezone
      • 1171308738000/1000/(24*60*60) + datenum( 1970,1,1,-7,0,0 ) = 733085.522430556 (12-Feb-2007 12:32:18)