Search Comments and Ratings

go

Comments and Ratings

   
Date File Comment by Comment Rating
11 Sep 2009 ScrollPlot - scrollable X/Y axes ScrollPlot adds a scroll sub-window to any supplied plot handles. Author: Yair Altman Altman, Yair

Almog - The warnings can be eliminated by typing:

warning off MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame

I'll add it to a new version when I get to it, but in the meantime you can simply add this to your startup.m file or your Matlab Command Window. It has no negative effect.

אשמח אם תוכל להקדיש רגע להזין רייטינג :-)

26 Aug 2009 EditorMacro - assign a macro to a keyboard key-stroke in the Matlab Editor and Command Window EditorMacro assigns a macro or action to requested key-binding in the Matlab Editor & Command Window Author: Yair Altman Altman, Yair

For those interested, a set of EditorMacro macro functions has been submitted by Perttu Ranta-aho. The submission is called "TextTools" and can be found here: http://www.mathworks.com/matlabcentral/fileexchange/25122

24 Jul 2009 statusbar set/get status bar(s) for GUI figures & Matlab desktop Author: Yair Altman Altman, Yair

JavaFrame has no alternative. If and when it is discontinued in some future version we shall try to look for alternatives. Until then simply ignore this error by typing:

warning off MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame

Note that even if some future version discontinues JavaFrame, it will still continue to work properly on all prior Matlab versions (including your current version).

If you find JavaFrame to be useful for your needs, please consider letting MathWorks know about this in the webpage they dedicated for just this purpose:

http://www.mathworks.com/support/contact_us/dev/javaframe.html

05 Jul 2009 FindJObj - find java handles of Matlab graphic objects Find java objects contained within a specified java container or Matlab GUI handle Author: Yair Altman Altman, Yair

@Leonardo - FindJObj does not enable modifying the displayed object hierarchy - perhaps I will add this feature in a future version. You need to update the hierarchy outside FindJObj and then click on the <Refresh Tree> button.

05 Jul 2009 grep: a pedestrian, very fast grep utility a unix-like, very fast grep utility to find strings(s) in files of any type Author: us Altman, Yair

An excellent utility that I have come to rely-on in my daily work over the past few years. As with all the other submissions by Urs, GREP is deceivingly simple, extremely powerful and lightningly fast. If possible, I would suggest to make this utility more unix-compliant in its input flags (and yes, I am aware there are different grep flavors depending on the 'nix version). For example, support of -#/-a/-b etc. would be appreciated. Still, this would only be the icing on the cake since as I said GREP is already extremely powerful as-is.

04 Jun 2009 cprintf - display formatted colored text in the Command Window Displays sprintf-formatted strings in the Command Window using the specified color/underline style Author: Yair Altman Altman, Yair

@Karl - this is a corollary of the known issue with non-newline-terminated strings. In this case, the initial fprintf() was non-newline-terminated, getting cprintf confused...

A workaround for this case is to simply use cprintf for the initial black text, instead of fprintf:

cprintf('text', 'Here: ');
cprintf('blue', 'Blue\n');

27 May 2009 cprintf - display formatted colored text in the Command Window Displays sprintf-formatted strings in the Command Window using the specified color/underline style Author: Yair Altman Altman, Yair

yes Petter - this is a known limitation of CPRINTF that is mentioned in its help section as well as the TODO list (at the bottom of the file). Unfortunately, it seems that if there is no space separator, then Matlab attempts to combine the adjacent style segments, thereby overrunning the first segment's style with the second's. Adding a separator solves this. If anyone finds a workaround I'll be happy to hear. Until then it's a small price to pay...

15 May 2009 SYSTRAY - set/get system-tray icons on your computer's desktop sets icons in the system-tray of your computer's desktop & enables setting/getting icon properties Author: Yair Altman Altman, Yair

A reader on my blog (http://undocumentedmatlab.com/blog/uisplitpane/#comment-658 ) kindly pointed out that these exceptions can be solved by:

t=java.awt.Toolkit.getDefaultToolkit()
ev=t.getAWTEventListeners()
for i=1:length(ev)
  str=ev(i).getListener().getClass.toString
  if str.indexOf('com.mathworks.mwswing.desk.DTSelect')>=0 || ...
    str.indexOf('javax.swing.plaf.basic.BasicLookAndFeel')>=0 || ...
    str.indexOf('com.mathworks.widgets.text.mcode.MLintDeco')>=0
    t.removeAWTEventListener(ev(i))
  end
end

Thanks J :-)

14 May 2009 ScrollPlot - scrollable X/Y axes ScrollPlot adds a scroll sub-window to any supplied plot handles. Author: Yair Altman Altman, Yair

Rene - ScrollPlot is not a replacement for the plot function - it works on existing plots, within the current boundaries of the axes, so of course the new axes gets smaller to leave room for the scrollbars. This is exactly how it is supposed to work.

If you want to update the plot data, don't call plot again and again - instead, update the data of the plot handle.

Next time, make sure to read the documentation and understand the usage before you post a review... Others might say RTFM, but I say that considering that this minor issue made you think ScrollPlot only merits a mediocre rating, means that you have an exceptionally developed sense of quality perfection. I therefore look forward to learning from your would-be superior submissions here on the File Exchange.

22 Apr 2009 UISplitPane - Split a container (figure/frame/uipanel) into two resizable sub-containers Split a container (figure/frame/uipanel) into two resizable sub-containers, like Java's JSplitPane Author: Yair Altman Altman, Yair

@Martin - thanks for pointing this out. It is only a problem when right-clicking the divider, so as long you left-click/drag you're safe.

The right-clicking problem also occurs on earlier Matlab versions, and is due to some very internal Matlab-Java integration reason. (If you must know, because the divider's javacomponent-created HGPanel is a heavyweight AWT Component instead of a lightweight Swing JComponent). I am unable to bypass this problem at the moment. If I find a way I'll post an updated function here.

30 Mar 2009 UISplitPane - Split a container (figure/frame/uipanel) into two resizable sub-containers Split a container (figure/frame/uipanel) into two resizable sub-containers, like Java's JSplitPane Author: Yair Altman Altman, Yair

@Jveer - you can customize the divider using the 'DividerWidth' and 'DividerColor' properties. By default, a standard width of 5 pixels and the figure's background color are used. I used fat and colored dividers in the screenshot for demonstration purposes only, but you can set them to whatever you need. Read the help section for other settable properties.

28 Mar 2009 Interactive Data Navigation Pane Widget Widget to interactively & graphically select a section of a large dataset you want to work on Author: Thomas Montagnon Altman, Yair

Very nice execution!

I was planning on doing something similar based on Google Finance's example, but with your submission there's really no need. An altogether excellent submission and a fine example of Matlab OOP.

A few suggestions:
1) uiHistory works on R2008a (Matlab 7.6) onward. You might consider some coding changes for it to work on R2007b and earlier: 'private' instead of private (and so on for other modifiers); not inheriting hgsetget etc.
2) You might consider modifying the cursor over the handle bars to right-left arrows (see my ScrollPlot submission for example)
3) You might consider setting the central patch (between the handle bars) draggable, so that the user can interactively pan the zoomed contents (again, see ScrollPlot for example)
4) You might consider enabling the two edit-boxes, so that users can enter specific dates.
5) You might consider adding a shading between the zoom patch below and the displayed graph above, just like in your screenshot. For some reason I don't see this on my R2008a/b.
6) You might consider adding to the main graph axes annual grid-lines (like in the zoom axes below) and tick labels (so that we know what event happened when)
7) Finally, I would suggest displaying the figure toolbar, or at least enable data-cursor mode (whose callback should be modified to display a human-readable date).

28 Mar 2009 UISplitPane - Split a container (figure/frame/uipanel) into two resizable sub-containers Split a container (figure/frame/uipanel) into two resizable sub-containers, like Java's JSplitPane Author: Yair Altman Altman, Yair

Hi Sivakumar,

uisplitpane returns 3 handles: 2 handles of the uipanels on either side of the divider, and the divider handle. You can add both JTabbedPane and uitabgroup to either of the uipanels, as follows (at least on R2007b):

[hPanel1,hPanel2,hDivider] = uisplitpane(...);

hTabs = uitabgroup('parent',hPanel1);
t1 = uitab(hTabs, 'title', 'Panel 1');
a = axes('parent', t1); surf(peaks);
t2 = uitab(hTabs, 'title', 'Panel 2');
closeb = uicontrol(t2, 'String', 'Close Me', ...
'Position', [180 200 200 60], 'Call', 'close(gcbf)');

h3=javacomponent('javax.swing.JTabbedPane',[20,20,100,200],hPanel2);

Yair

19 Mar 2009 Compare anything Compares quantatively structs, cell, array, element by element. Author: ygal Altman, Yair

FYI, I published ObjDiff (http://www.mathworks.com/matlabcentral/fileexchange/14395 ) on the File Exchange 2 years ago. ObjDiff is very similar to what you did and also handles HG handles, arrays and COM/Java objects.

18 Mar 2009 SC - powerful image rendering Useful tool for rendering and outputting information rich images Author: Oliver Woodford Altman, Yair

Extremely well done: excellent documentation, very instructive online demo (look at its code: so clean and compact!), lots of boundary-condition checks and clever packing of lots of options into a decievingly-simple interface. Some of this submission's defaults should have been imagesc's as well (for example, auto preservation of aspect ratio & axes elimination, not to mention the discretization issues). I love it!

09 Mar 2009 GridBagLayout A MATLAB class which controls layout and resize of a figure/uipanel/uicontainer. Author: Jason Altman, Yair

Magnificent piece of work!

03 Mar 2009 Java-based data table Spreadsheet display/editing/sorting of data with multiple features Author: Yair Altman Altman, Yair

danders - this is due to the fact that tablehandle.getData returns a 2D Java object, which is actually represented as a 1D array of arrays, therefore always returning "1". in order to get the correct size, simply convert this Java array into Matlab using the cell() function, as follows:

[numRows,numCols] = size(cell(tablehandle.getData));

Yair

12 Jan 2009 FindJObj - find java handles of Matlab graphic objects Find java objects contained within a specified java container or Matlab GUI handle Author: Yair Altman Altman, Yair

ucd puri - jControl and uiComponent are simply Matlab functions that enable easy access and usage of Java controls, which in general are more powerful than the basic Matlab controls. The FindJObj function is useful for finding the handle of a Java control within a Matlab figure, similarly to Matlab's basic findobj function.

Java control functionality can be googled (e.g., "java jslider") , or you can read any good book or online tutorial about Java Swing (e.g., java.sun.com/docs/books/tutorial/uiswing/components/). Alternately, you can use my uiInspect submission on the Matlab File Exchange to see exactly which properties/methods/callbacks are available for any component (Java, Matlab or COM) - http://www.mathworks.com/matlabcentral/fileexchange/17935

Yair Altman

16 Dec 2008 FindJObj - find java handles of Matlab graphic objects Find java objects contained within a specified java container or Matlab GUI handle Author: Yair Altman Altman, Yair

The R2008 warnings can be eliminated by typing:

warning('off','MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame');
warning('off','MATLAB:uitreenode:MigratingFunction');

I'll add it to a new version soon, but you can simply use this in your startup file or your Matlab Command Window.
Yair

 

MATLAB Central Terms of Use

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Terms prior to use.

Contact us at files@mathworks.com