Rank: 63 based on 927 downloads (last 30 days) and 32 files submitted
photo

Michelle Hirsch

E-mail
Company/University
MathWorks
Lat/Long
42.3, -71.6

Personal Profile:

I'm the head of MATLAB Product Management at The MathWorks. I've been a heavy user of MATLAB since the mid 90s, and now work to represent the voice of the user as we continue to improve MATLAB. Feel free to drop me a line and let me know what you'd like to see us work on.

Professional Interests:
MATLAB

 

Watch this Author's files

 

Files Posted by Michelle View all
Updated   File Tags Downloads
(last 30 days)
Comments Rating
20 Jun 2014 Screenshot Add a background gradient to plots Add a background gradient to plot axes to make them look a little fancy. Author: Michelle Hirsch graphics, utility, gradient, presentation 11 0
20 Jun 2014 Screenshot xlswritefig Write a MATLAB figure to a Microsoft Excel spreadsheet. Author: Michelle Hirsch excel, data export 16 4
  • 4.0
4.0 | 5 ratings
18 Jun 2014 Screenshot linelabel Identify a plotted line by clicking on it. Author: Michelle Hirsch data exploration, interactive, legend, line, label, tip 27 7
  • 4.83333
4.8 | 6 ratings
18 Jun 2014 Screenshot Useful Figure Management Utilities 3 Useful figure management utilities. Author: Michelle Hirsch data exploration, figure, figures, graphics, utilities, cascade 86 6
  • 4.5
4.5 | 6 ratings
18 Jun 2014 timestr String representation of time in HH:MM:SS.SSSS format. Author: Michelle Hirsch strings, time, second, seconds, milisecond, microsecond 20 2
  • 3.5
3.5 | 2 ratings
Comments and Ratings by Michelle View all
Updated File Comments Rating
28 Feb 2014 UIGETVARIABLES: Dialog to pass variables from workspace into GUI UIGETVARIABLES creates a dialog box for selecting variables from the base workspace Author: Michelle Hirsch

Great suggestion, Michael. There's no easy way to do it right now. Ideally, I guess the interface would treat structs (and tables) like workspaces, and allow you to drill into them to pick individual variables.

Anybody out there want to take a stab at adding this enhancement?

- Michelle

20 Jan 2014 dualcursor Add dual vertical cursors to a plot. Author: Michelle Hirsch

I sent Mayank a version that supports this. If it goes well for him, I will post this updated version to the File Exchange.

13 Jan 2014 dualcursor Add dual vertical cursors to a plot. Author: Michelle Hirsch

Mark - glad you like it. The code doesn't do horizontal lines. It could be modified to do so, but would likely be a fair bit of work since my code all assumed vertical lines.

If anybody is up for tackling I'd be happy to review proposed changes! Just email me.

01 Apr 2011 FIGHT TO THE DEATH AGAINST A GIANT CHICKEN An epic finalfantasy-style fight against an AI controled chicken with a dynamic interface :P Author: Emile B.

Totally made my day!

11 Feb 2011 MATLAB Functional Programming Style Guidelines An annotated presentation for MATLAB programming style guidelines Author: Fayssal El Moufatich

This appears to be a nearly direct copy of Richard Johnson's legendary MATLAB Programming Style Guidelines, just put into PowerPoint format.

http://www.mathworks.com/matlabcentral/fileexchange/2529-matlab-programming-style-guidelines

Comments and Ratings on Michelle's Files View all
Updated File Comment by Comments Rating
30 Jul 2014 xlswritefig Write a MATLAB figure to a Microsoft Excel spreadsheet. Author: Michelle Hirsch Phillip

30 Jul 2014 Scopes for real-time display Set of widgets for real-time data display. Author: Michelle Hirsch Narayani

Does this need a USB-COM adapter? How can the USB port be recognized as a COM port?

26 Jun 2014 timestr String representation of time in HH:MM:SS.SSSS format. Author: Michelle Hirsch Cobeldick, Stephen

Minor bug fix for my suggested code below: the logical compare 'prc>0' needs to be in brackets '(prc>0)'.

24 Jun 2014 timestr String representation of time in HH:MM:SS.SSSS format. Author: Michelle Hirsch Cobeldick, Stephen

A useful concept but there are multiple mlint messages that need attention, and the author themselves makes one comment that things are "a bit messed up": no array preallocation, no logical indexing, unused variables, for-loops instead of vectorized code, vague input/output specifications, many commented-out lines of code... keep an eye on the ball, MATLAB!

Apart from tidying up the code, some design issues allow edge-case bugs to creep in too: the seconds' fractional part is rounded inside an "sprintf" call, which can result in some unexpected time values in the string:
timestr(datenum([1999,12,31,23,59,59.999]),2)
-> ans = '23:59:60.00'
timestr(datenum([1999,12,31,23,59,59.5]),0)
-> ans = ' 23:59:060'

The following code fixes this behavior by truncating at the required precision (consistent with how we increment time units only after they are complete), as well as being faster to compute:

%%% begin mfile code %%%
function str = timestrX(num,prc)
% Return a string representation of a serial date number: 'HH:MM:SS.SSSS'.
% num = NumericArray, the SerialDateNumbers to convert, any size not empty.
% prc = NumericScalar, the number of decimal digits of the seconds, default=4.
% str = CharArray, with numel(num) rows. Each row is linear indexed from num.
if nargin<2, prc = 4; end
[~,~,~,H,M,S] = datevecmx(num(:).');
fmt = sprintf('%%02d:%%02d:%%0%d.%df',prc+2+prc>0,prc);
str = reshape(sprintf(fmt,[H;M;S-rem(S,10^-prc)]).',[],numel(num)).';
end
%%% end mfile code %%%

timestrX(datenum([1999,12,31,23,59,59.999]),2)
-> ans = '23:59:59.99'
timestrX(datenum([1999,12,31,23,59,59.5]),0)
-> ans = ' 23:59:59'

18 Jun 2014 linelabel Identify a plotted line by clicking on it. Author: Michelle Hirsch hsiung, Chang

exactly what I have been looking for

Contact us