File Exchange

image thumbnail

TabPanel Constructor v2.8 (2010)

version 1.4 (876 KB) by

TabPanel Constructor offers the easiest way for creating of tabpanels in MATLAB!

96 Ratings



View License

TabPanel Constructor offers the easiest way for creating of tabpanels in MATLAB!

- No programming is necessary!
- All tabpanels can be edited comfortably with GUIDE!
- All MATLAB UI controls are supported.
- result is the original FIG-file and the accompanying M-file which is automatically extended with callbacks
- No ActiveX or JAVA components are used!

Comments and Ratings (161)

sam barry

how to install file 'TabPanel Constructor v2.8 (2010)'? Thank u


Timo Benzel

It is very easy to control and definitely does what it is supposed to.
However there is one bug, when you try to start by loading an existing GUI into a tab. Then this tab will be on all panels and cannot be removed since it does not appear in the edit mode... but that is not really a big problem i think.

Is this package working well in Matlab 2013a?

  I could able to create tab using this constructor in Windows but it is not working in Linux. Anyone faced this issue?
Please help me to get rid of it.

Bruno Luong

Bruno Luong (view profile)

pcode no longer supported in recent MATLAB version. That's very sad , because it is a good package

cheng joylin

Vincent Gigot

Would you please give access to the code of tabpanel.m and tabselectionfcn.m (maybe other function also), because pcdoe need to be updated for latest Matlab version.
Thnak you.

madhu T S

very good application... thanks a lot

This good application, very useful seems to be obsolete with tha last version of Matlab, the release R2015a.
Graphics pb occurs, like hiddent parts, or cut of text, and the worst is that any change of GUI of different panels cannot be saved anymore.

For info i receive this error message everytime i try to save my work :

Error using
There is no units property on the Menu class.

Error in tabpanel>UpdateCurrentPanel (line 321)
Error while evaluating UIControl Callback

Thanks for news if we have to recode our works or if an update is gonna be developped.
Best regards.


Lei (view profile)

Elmar, great work!
Just one comment: I used it in Matlab R2013a, and the code cannot generate SelectionChangeFcn for buttongroup panel. Even I manually added the SelectionChangeFcn into the m file, it does not work in the GUI.
BTW, I have seen the comments by Syed Hussain and your response, but it may still not work for R2013a. Could you please provide a new version for the latest MATLAB? Thank you!

Bruno Luong

Bruno Luong (view profile)

Under V2014B the table label is hidden by other objects. The work around it to add this piece of code at the opening of the GUI

p = handles.TBP_TabPanelContainer(2);
h = get(p,'Children');
ispanel= strcmp(get(h,'Type'),'uipanel');
set(p,'Children', [h(~ispanel) h(ispanel)]);


AR (view profile)

Does not work under Ubuntu 12.04, Matlab 2012a

Figure name has Upper and lower case
e.E.: My_Figure.fig
The tabpanel is called "tabPanel"

Calling tabpanel('My_Figure.fig', 'tabPanel')

creats a pop up message : file 'my_figure.fig' not found.

This works:
fh = openfig('My_Figure.fig');
ans =

     1 0 0 -1 -1 -1 0 0


AR (view profile)


the source code file is fake.


Romain (view profile)

This application is just working very well and is very useful.
I am for the moment working on version 2011a and will soon update to 2013. Do you know if any update will be done in order to be compatible with this version ? (To avoid to loose my work...)
Anyway, great job !


Jeremy (view profile)

I am also getting pcode errors in 2013a. It would be nice if author could update, or release the source code to someone else to do so.

There do not seem to be any alternatives to this in more up-to-date matlab versions. Anyone know of any?

Sunil Shahi

has anyone had any luck using matlab 2012b version? I have pcode error.
after I do pcode('tabpanel') and call tabpanel('myFig','myTab') doesnot work. it does nothing.. any help? I tried in matlab 2011 it works fine..

Chris Wa

I'm using your tablpanel, it's working quit well on 2011band makes my GUI much more clear, but I have a problem, if i copy my tabbed_gui.m into another folder, I can't save the changed GUI anymore, because I get the following error:
Error using guidemfile>getFileContentsNoSave (line 25)
MATLAB-code file
does not exist.
I found out, that there is a field in the tabpanel_options which is called 'LastSavedFile' which always contain the path where the GUI was created.
Could you implement a Button like 'SaveAs', it would probably solve this problem.


BB (view profile)


Great job! Enjoy it!


Nice piece of programming! When creating a .p-file of a program where this version is implemented I get a warning that the compatibility will soon be outdate. Anybody a solution?


I have faced too many errors and problems with this tool. The worst one: changes are not saved! If tabpanel is opened, the changes are there implemented, but when saving and closing the editor, initially it seems they have been saved but when the fig is loaded, it keeps as it was. Desperating!! If you want to do a very simple GUI,ok. But not useful for more as problems just keep appearing.


JoE (view profile)

Sorry for my last post.

I just figured out, that I did not have checked the option to create callback function automatically.

Sorry for this unnecessary comment.
And thank you for doing great job.


JoE (view profile)

Thanks a lot.
Just one problem. I can not use Editor to edit Callback functions for e.g. buttons on tabs.
I am working on R2012b, so I'm not sure if it is supported.

Thank you for response.

Xunkai Wei

Xunkai Wei (view profile)

very good, but could you share the source code ?

Soren Preus

Nice tool, easy to use! Unfortunately, I have a relatively large GUI in which case MATLAB frequently crashes when going <-> between the tabpanel editor and my original .fig file in GUIDE. MATLAB e.g. crashes when I try to open my GUI.fig in guide after I've run the tabpanel-editor (it didn't do this before using tabpanel). I have tried increasing the JAVA heap memory without any luck.


H (view profile)

David Ruiz

Hi i'm having problem with the link to the file.


Joshua (view profile)

I'm having a problem getting UI Panels to work within tab panels


waveui (view profile)

I have the problem, when I delete a tab of an existing tabpanel-figure all panels move down a bit. So it is often necessary to rebuild the whole tabpanel-figure (with all tabs) if I do not want the panels to move to the bottom. So updating tabs (with existing figures) is quite complicated. Do you experience the same problem? Is there a solution to this problem? Thanks!

Selcuk Fidan

This program is awesome! Great work!

Yuri K

Yuri K (view profile)


Thnks for this great contribution to UI development.
I just have a problem of compatibility with my Matlab release R2011b (64bits).
pcode regeneration of both tabpanel.p and tabselectionfcn.p seems not to work. I happy to see that i'm not the only one in this case reading previous commentaries.
Moreover there is another warning about tabpanel.p announcing an UNKNOWN function (my UI name file is SPIKES.fig ) :

>> tabpanel('SPIKES.fig','spikes_tabpanel')
Warning: Could not find appropriate function on path loading function
handle >UNKNOWN Function
> In C:\Program Files\MATLAB\R2011b\toolbox\matlab\graphics\hgload.p>localLoadFile at 169
  In C:\Program Files\MATLAB\R2011b\toolbox\matlab\graphics\hgload.p>hgload at 59
  In openfig at 72
  In C:\CSGA-CNRS\TRAVAUX\Matlab\SPIKES\Spikes_Tab\tabpanel.p>tabpanel at 115

Thanks for your suppoort.



I'm facing the same problem of David..


Felix (view profile)

Is there anybody out there who manage to get this tool working under Matlab 2011b? I get the following warning/error message when opening the tabpanel-tool:

Warning: The P-code file tabpanel.p was generated prior to MATLAB version 7.5 (R2007b) and will not be
supported in a future release. Use pcode to regenerate tabpanel.p using MATLAB R2007b or later.
Error using copyfile
All arguments must be one-dimensional strings.

tabpanel.p>tabpanel (line 223)

Thanks for your support.


Thomas (view profile)

Absolutely amazing! I was trying to program something like this for days, but your Tab Creator ist a thousand times better than my best try!!
Thank you so much for sharing your program


I need some help. I can't edit my GUI anymore, the menu of the constructor went so down on my screen that i can use it!


David (view profile)

Awesome tool. There is one bug that is really annoying me. I made a GUI like normal with a few tabs. After working on the GUI for a while everything is great until I want to change the names of the tabs or add a new panel. The minute I try to do this, the contents of all my tabs get resized and moved. I found out that all of the contents shifted when opening my figure using GUIDE but manually moving the tabs back to their original location will break future ability for adding and renaming tabs correctly. Is there a way to solve this?


Hi, I'm trying to use tabpanel under Ubuntu Linux 10.04 LTS 32 bit using Matlab R2010b 32 bit. I avoided using caps but I only get an error message:

>> tabpanel('test', 'test')
??? Error using ==> copyfile
All arguments must be one-dimensional strings.

Error in ==> /home/myhome/mycode/tabpanel/tabpanel.p>tabpanel at 223

Am I doing something wrong? Thanks!

Alessandro C.


Hello, I have an issue, I don't remember the name I gave to the tabs in my main fig, is there a way to find it?

Nice implementation to design graphically tab panels. I found one bug. Your code is not case-sensitive, and while under Windows this is not a problem, under linux tabpanel doesn't work because it can't find the fig. (I guess it's the same bug Igor found).


Thank you very much for the tool, it is really great!

I have a question, how can I change the visible tab from MATLAB code? I need to change the visible tab when I push a button.




Martin (view profile)

Very useful tool!

One question:
I developed MyGUI using TabPanel Constructor; MyGUI is getting more complex with lots of objects. Hence I decided to export MyGUI to a single M-file in order to handle it programatically without GUIDE.
When exporting the figure to a single M-file, the tabs do not work!
Is there a solution to this problem?

Thanks a lot!

Jonas Reber

Jonas Reber (view profile)

this is awesome!

could you regenerate the p-code for tabselectionfcn? I always get this annoying warning about it not being supported (see csb's message).

I'm using MATLAB Version ( R2011a

thank you!


Arthur (view profile)

Very nice!


csb (view profile)

Hi, Wonderful job and very useful ,thanks a lot. However, I get the message

Warning: The P-code file tabpanel.p was generated prior to MATLAB version 7.5 (R2007b) and will not be supported in a future
release. Use pcode to regenerate tabpanel.p using MATLAB R2007b or later.

I am using MATLAB Version (R2010b)

Could it be possible for you to regenerate the sources ?

Thanks a lot,



Great tool!
Just like Juan Navas, I would like to change the background color of the tabs. It would be very nice if it was possible.

Thank you very much


Steve (view profile)

Never mind. I finally figured the correct callback name of:

function *****_TabSelectionChange_Callback(hObject, eventdata, handles)


Steve (view profile)

I think this is a great tool, It near perfectly does what I need. However, I am having one issue. I cannot get a "SelectionChangeFcn" Callback function when I select it on the settings menu. I am trying to implement various jTree implementations on different tabs however the jTree is displayed no matter the tab selected (instead of just the correct tab). I think I can correct this by setting the jTree visibility to 'off' depending on the tab selected (I am new to jTree also) but I need a callback for the tab selection change.

Any help or ideas are appreciated. I really like this tab implementation and don’t really want to try any other tab methods since this implementation will display previously built GUI figures.


David (view profile)

Is the feature for importing an already made FIG file for a new tab working? Everything time I try to create a new tab and specify an existing FIG, it just opens the FIG and not make the content of the tab the FIG.

Rajib Ahsan


Igor (view profile)

Finally, I ran into a couple more bugs shown on video:

We got working gui_host.fig
( tabpanel('gui_host_good.fig','TabPanel') - ok , save ok )

2) if we rename it to gui_host_good.fig ,

results in:

??? Error using ==> copyfile
All arguments must be one-dimensional strings.

Error in ==> F:\Igor\Documents\IAR\avr644\v1\Matlab\GPlib\tabpanel\tabpanel.p>tabpanel at 223

3) we also got 2nd version of gui_host.fig , stored as gui_host_bad.fig , I can't remember what exectly had I done wrong with it, but now when I click 'Save and close' after some editing, it resuts in

??? Reference to non-existent field 'lastSavedFile'.

Error in ==> F:\Igor\Documents\IAR\avr644\v1\Matlab\GPlib\tabpanel\tabpanel.p>FigureCloseRequest at 943

??? Error while evaluating uicontrol Callback


Igor (view profile)

Hi Elmar,
You tool is great!
Yet, after a while, a ran into a couple of bugs :
1)suppose Matlab's current folder is .\
if we place gui.fig to .\GUI_folder\gui.fig (folder is added to Matlab's path) tabpanel('gui.fig','TabPanel') wil open gui.fig , as expected, but later it saves it as to current folder, .\gui.fig.
Same occurs to gui.m.

2)Suppose our figure file is GUI.fig.
tabpanel('GUI.fig','TabPanel') will open it OK, yet, when we try to save it, it will be renamed to gui.fig (lower case).

3)About screens with different DPI...This is more like a suggestion..but..
Panel size setting can be set in pixels only. And it's maintained that way... 'pixels' is not a default matlab's 'Units'. So, when we launch GUI created on PC with one DPI settings on PC with another DPI settings we'll get some artifacts for sure....
And even if we'll set all 'Units' to 'pixels' tabs font is still changing,and tab labels no longer fit in their places (they look like 'LowLe...' insted of 'LowLevel').


Igor (view profile)

Dean Mark

Eugen Schaefer,

You are right that control Create Functions do work. A more thorough investigation showed me that figure Create Functions DO NOT get called. After some fidling I am led to believe that this might be a bug.

Any ideas on how to make this work?

Dean Mark,

to call objects like "Create Function" or "Callback" you have to open the Inspector of the figure you want to open inside a tab --> guide('yourFigure.fig'). Second, insert %automatic in the field of CreateFcn or Callback depending on what you want to be called. Afterwards, save your insertions and close the figure.
Now, if you try to add your existing figure as tab, it should work.



Dean Mark

I like the option to add figure files into tabs. This is THE most missing feature in matlab!

However, I'm having one issue with this. When using your tool to open a figure inside a tab, object Create Functions aren't called. I'm specifically talking about the figure creation function, and a panel's creation function. I assume this happens with all other creation functions as well.

This is causing a great deal of mess inside my code. Any ideas on how to workaround this?

Excellent tool and best available as far as I can see. this should be part of Matlab main code. Thanks Elmar.

Elmar Tarajan

Elmar Tarajan (view profile)


Many thanks for sending the example code. I have found the cause of the problem. I'm definitely sure, that you have created the tabs using older version v1.3 and not v2.7 as you have mentioned before.

These versions are incompatible to each other. There is no way to update your tabs to a current version. This has to be rebuilt again.


Elmar Tarajan

Elmar Tarajan (view profile)


Please contact me directly via mail and let me know which MATLAB- and TPC-version is in use. If possible, send me a working example to investigate.



San (view profile)

Hi Elmar, You have done an excellent job with tabpanel constructor. I had created a tabbed gui which used to work before. Now when I want to edit, I get the error saying that the gui file is not found. In fact I have the the fig file in the same directory. My gui name is primitivesGui. But the error message says primitivesgui.fig not found. Is there a problem if the filename contains capital letters? when I renamed with small letters, I have some other error. Conversion to double from cell is not possible. Error in ==>tabpanel/tabpanel.p>tabpanel at 166. Any clues?



thanks for that great code and the personal help.

best regards

Elmar Tarajan

Elmar Tarajan (view profile)


> I copied my files to a different machine and it seems to be
> looking up the wrong path.
I could not reproduce this behaviour and never heared about such problems from other users - need detailed info. Please contact me via email.

> Is that asking for too much? :)
oh... yes... a little bit to much! :)

regards from Germany,


Hakim (view profile)

    It looks like the path to the .m file corresponding to the .fig is stored as an absolute path. I copied my files to a different machine and it seems to be looking up the wrong path. How do I update the path? or better still, cant it just be relative?

On a different note: You have put in good amount of effort into this and I thank you very much for sharing this! but there are little quirks that one may need to fix/workaround and would be really nice if you can share the .m files instead of pcode. Is that asking for too much? :)

Thanks again

Elmar Tarajan

Elmar Tarajan (view profile)

Hi Thomas,

many thanks for sharing you suggestions and hints regarding the unique tag's with other users!

> tabselectionfcn('tmp.fig','abc',2) which led to this error:
> ??? Error using ==> findobjinternal
You should use the handle of the figure and not the name of the figure-file! :-)

> I only suggest u add a 'close without saving'-Option
> to cancel any changes
already done in the new version! I'll update TabPanel Contructor to v2.8 within the next 2-3 days.


Ok, after my question is gone, I have to add an additional comment for it (sorry!):

I tried to get the tabselectionfcn working. I have a figure (tmp.fig) and a text-field (tag: 'abc') in it, where I created two tabs ('aaa' and 'bbb').
I tried to switch to 'bbb' by:
tabselectionfcn('tmp.fig','abc',2) which led to this error:
??? Error using ==> findobjinternal
Incomplete property-value pair.

Error in ==> findobjhelper at 56
        h = findobjinternal( varargin{:} );

Error in ==> findobj at 45
    h = findobjhelper( varargin{:} );

Error in ==> C:\sim1\tabselectionfcn.p>tabselectionfcn at

Could you please offer a simple example-file for making the tab-selection-change work?

Everything else in ur program works very well, thx for ur work!

I only suggest u add a 'close without saving'-Option to cancel any changes if one made a mistake (and rename the 'X'-Button to 'Save and Close')

For GUI's with tabs be carefull to rename all tags to unique tag-names (if u need the tag in your figur-m-file or anywhere else) within ur gui (can be done via the Object Browser for exisiting conflicts)

One need to be carefull on this, because the TabPanel Constructor does not create unique tag's for ur objects (and it shouldn't because this would change the tag-name during opening an existing tab, which I would hate!). So if u have two tabs and in both u have an edit-field, both will have 'edit1' as their tag.

Is it now possible to import an existent fig file as new tab?
How can be done?


Sherif (view profile)

Is it possible to change the tabs using programming?


Steve (view profile)

Got in personal contact with the developer: Quick Support, nice prog, 5 Stars from Austria

Oleg Komarov

Oleg Komarov (view profile)

I don't like this submission since only .p code is available.


Gary (view profile)

John Simeral,
I have found that if I'm not careful, I can lose the tags on my ui controls when using tabpanel. That has led to errors that look similar to yours. I've found that I can avoid this by doing two things.
1) tabpanel is located in the same directory as the .fig file that I'm editing (probably not necessary).
2) ensure that GUI is not open when I run tabpanel on that GUI. (I think this is the one that matters)
Hope this helps.

John Simeral

Very nice - hopeful this will be the solution for panels in my app. However, after I add the panels using tabpanel and click to close & save, I get the error:
   ??? Reference to non-existent field 'lastSavedFile'
Can you guess the cause of this error?
Thanks, John

Thanks about this great add-in! nice stuff.
I think it is better to increase the size of panel in its first appearance; I had some trouble to use it first time.
But I am looking for a possibility to change the tabs using programming; Is is possible with "TabPanel Constructor v2.6.1"?


Alvaro Navas


David (view profile)

Agreed that this is quite useful and easy to use. Thanks! I have an issue that is related to what patrick asked about just a couple days ago. I haven't been able to effective resize and/or move the tab panel in Guide. It's not immediately clear to me what the easiest way to resize and re-position the tab panel would be. Again, many thanks!


Excellent software !

some issues though (v.2.6.1)
- each time a panel is edited/updated, the outer window grows bigger and bigger
- so I touched the black window (which says "Warning") to redimension it in Guide , now there are other windows behind, and the whole layout is screwed, is there a possibility to recover the default layout ?
-each time a panel containing a graph is edited, the reference to the graph is lost (even though the tag does not change), so that the graph must be deleted and re-created
- still GUI closing/restart when switching tabs in R2009a

thanks !


CLou (view profile)

Great tool! I do have a question though - how can I use it as a wizard? I'd like to manipulate the tabs using buttons on the tabs. For example, clicking a button on TabA will advance the panel from TabA to TabB. I've been unable to figure this out. Please help!!! Thanks.


Jan (view profile)

Hi, I'm quite new to GUI and I have complications how to use a plot for a figure, which is on one of those tabs. Could you help me pls?

Elmar Tarajan

Elmar Tarajan (view profile)

Hi sarvendra,

the temp file is necessary only for internal usage. After pressing the save button in guide (and closing it) you should use the "update" button in TPC, which takes over the created tab into the main GUI application.

please write me directly if you have other question,



hey it is really great tool

but i have some problem can any one please help me out
problem is
when i press on edit button and after completing the gui of that tab in guide that file is getting saved in temp file and if i close it every thing is lost
if i close the main fig file and try to run the m file generated there is nothing on the screen

please help me out


Guy (view profile)

Great Tool
Great Support

awesome tool! just one noob question.. i want to compile a project and have the files:
- PET_Interface.fig and .m (which is my myGui.fig)
- and .p
- tabselectionfcn.m and .p as well

i tried to compile the project including in the main function all the possible .m and .p one by one. but in the end none of the projects created even start. Aplication opens the DOS windows and then it does nothing.. stays like this.. my GUI doen´t open and i can't run the program..
what am i getting wrong? which should be the file to include in the main function? the rest goes to the other files right?

tnks in advance!


Sherif (view profile)

Great work, thank you.

I am facing a problem with the tool
In fact, I use panels within the tabs; inside the panels I use popupmenus.
The callbacks associated with the popupmenus are never called.
I use MATLAB Version (R14) and tabpanel2.6.1
Please advise.
Thanks in advance.


Teunis (view profile)

Fantastic peace of work. Well done and thanks for making our lives so much easier!


Dom (view profile)

Great tool, especially when GUI's become "overcrowded".

Proper work well done!


David (view profile)

A very great tool. I'm looking for such a tool for few months. Easy to handle, good structured!!!

Great job, great done!!!


regina (view profile)

hi! can anybody help me.
im using matlab (R14) Service Pack 3
i've extracted the files in here and im using the files in the folder with tabpanel 1.3(R13).

can anybody help me because when i tried running tabpanel('tabgui.','sampletab') in the command window it just say Undefined function or variable. should i close tabgui first? because i have tried closing it and running the tabpanel('tabgui.','sampletab') it still has the same errors. hope someone help me


@C3 PO: Thanks for ur help. I fixed the problem by using tabpanel v2.6


C3 PO (view profile)

@Michael, could be the case that your checkbox does not refer to the correct callback! Try to edit your GUI with GUIDE (beware of not changing anything of the figure editor!) and check the Objectbrowser. There you see the callback your checkbox refers to!

I experianced some major issues using tabPanel:

When testing the gui, fast switching between tabs restarts my gui..

When using tabpanel, no object attributes can be changed anymore after closing tabPanel (workaround: Objectbrowser with GUIDE on gui.m)

Do not try to add global tools to one of your tabpanels - will result in complete loss of your figure after saving!

I like this programme, although it still has some issues which can be very frustrating... (spent hours of redundant work caused by loss of elements and wrong callbacks / createfcns)

Environments used : Matlab 2008a, 2009a




Does somebody know whether the callback function for a checkbox element works properly with tabpanel (version 1.3)? I have the problem that the calback function of the checkbox element is not executed when i activate/deactivate the respective checkbox.

Nam-Eung Kim

Excellent program! I have been using this program for the past 1 year. I really like it even though there are some limitations. One thing that I still wonder is if I can use Menu Editor or Toolbar Editor. Can I use them without problem. Once I created a menu and tried to update it and I got the following error.

Error using ==> copyobj
Object uimenu[1] can not be a child of parent uipanel[1]

Am I doing something wrong? BTW I am using v2.6.


Bob (view profile)

welldone Elmar, this tool is kind of professional,cool
but i also have some problems with it.
about : automatically extention of the callbacks
if i make some change with the edit button of tabpanel,for example, i change the tag of some buttons. and then push the update button. then re-open the m-file of my gui. i didn't find the callback with new tag. it seems that,only new buttons would be updated, is that normal or i did something wrong?



Bob (view profile)


Peter (view profile)

Very handy tool, enormously eases my work of using tabs in Matlab! I am currently using it for my thesis.
One issue i would like to mention:
After closing TPC the gui is automatically started. How can i avoid this? Or did i miss something?



Linzem (view profile)

how can i solve this problem?

??? Error using ==> set
Width and height must be > 0.

Error in ==> D:\tabpanel.p>UpdateTabpanel at 576

Error in ==> D:\tabpanel.p>Settings at 499

??? Error while evaluating uicontrol Callback

??? Index exceeds matrix dimensions.

Error in ==> D:\tabpanel.p>EditCurrentPanel at 153

??? Error while evaluating uicontrol Callback

Hannes K.

Very usefull tool! Thx Elmar!
I had a little trouble in creating nested tabs. (I'm stupid sometimes.. ;)
Here is a short example for all the other stupid guys out there:
creating nested tabs:
1. create a static text (tag: mytab) with guide in a GUI (named: mygui)
2. tabpanel( 'mygui', 'mytab')
3. edit 'mytab' and create another static text (tag: nested) where you want your nested tab (save & exit)
4. tabpanel( 'mygui', 'nested')
5. edit 'nested'...

Joao Duarte

I can now open the Tab Constructor, but the panels do not appear in my .fig after I close the Tab Constructor. When I write tabpanel('fgurename.fig','tabname') again to edit the tabs, the initial text box is empty...

Joao Duarte

Why do I get the error:
"Undefined function or method 'tabpanel' for
input arguments of type 'char'."
when typing:

Patrick Tai

I am learning to use this tool, looks very good. Thank you Elmer. However, I wish there are more tutorial or documentations. Questions: 1. Is there anyway to make different sizes for different tab pages? 2. Can the UIs for the tab pages to held in different .m files? Right now, one big UI.m file holds specs for all the tab pages, resulting in a very big file. 3. How to control the font of the texts in the tabs? Thank you very much.


Abbie (view profile)

Great support by developer. Thanks, Elmar!

nathan Jiang

it is a wonderful gui, thanks.


Andre (view profile)

Still quite a newbie at Matlab gui. It seems all of you know how to use it. I got to the last step, editted my M-File, run my program with a pushbutton and I get an error regarding it does not read my handles. I really need help, it's really gonna make my program so much better. Thanks.

Kris Gryte

One other inquiry: is it possible to add tabs programmatically? I realize one may delete a tab using the command line, but the addtion of tabs seems to run only through the TabPanel interface. A nice feature would be the addition and deletion of tabs at a click, much like a browser interface. Any possibility this may be added in the future?

Kris Gryte

I am currently having difficulties with the enabling and disabling of tabs, using the tabselectionfcn. I have attempted to input the function arguments as documented in the corresponding m-file, but to no avail. To ensure that my syntax is correct, would you be willing to supply an example for enabling and/or disabling a tab? Thank you in advance.


Gary (view profile)

Works Great! Just make sure the directory containing your .fig and .m files is set as the current directory. Good, prompt tech support when I ran into a problem. I just wish it didn't close my .m file everytime I edit the tabs.


Great Tool. But when I change the name of the gui, the tabpanel Constructor is not working any more

Peter Tonn

This saves a lot of time trying to create panels on my own. Very good work, but has anyone figured out how to use ActiveX controls with the different tab panels?

ilker keklikp?nar?


David Chapelle

Thank you for developping this very efficent tool

Keith Campbell

I'm actually still using an older version of this package and have used it on multiple projects. This is fantastic!!
Very well supported!

Andreas S.

Great tool and very pleasantly support ;-)

Elmar Tarajan

I'll implement following features in the next version:
- Enable/Disable of tabs
- programmatically tab switch
- TabChangeFcn

comes as soon as possible...

Joerg Sangals

Quiet a helpful addon, thanx a lot!
However, two important features appear to miss:
a) Is there a method to bring a tab to the front programmatically from within the application?
b) It would be nice if Tabs could be disabled/enabled.

Gonçalo Leal

Great work.

Gonçalo Leal

I need help here.. i must've done anything wrong because my .mfile does not have any of the callbacks that i put inside the tabs. My figure has them all but the .mfile doesn't have them. Please help...

Owen Kelly

Outstanding. Now I can get so much more info into my GUI ... without clutter.

Syed Hussain

Thank you Elmar,
It worked perfectly. great work.

Elmar Tarajan

To workaround this issue you should open the whole FIG-File (which contain the tabpanel) in GUI first. Then you need to open the "Object Browser" from the GUIDE toolbar. Find ans Select the UIBUTTONGROUP from the object list and add finaly the "SelectionChangeFcn" to the M-file using the "View"-"View Callbacks"-GUIDE Menu.

Syed Hussain

I am trying to update a tab using a uibuttongroup. I am unable to use the selectionchangefcn function of the radio button group. Do you know how to go over this problem.

thanks in advance

The Flatlander

fantastic tool to get the up to date tab look
and in the new version very easy to use!
even if you want to change things after programming

if you want to use tabs: this is your tool!

Qi Duan

I am currently using your tabpanel software and I think it is fantastic.

Gerald Lodron

Oh my good, thats cool! How many times I needed such thing and now my dreams come true...

Syed Hussain

Nice tool you have. I have a question to ask. I already have four seperate gui, can i incorporate the existing gui to become tabs in one gui. If it cannot be done i hope that an extension to incorporate that would be great.


Jay Wang

Excellent idea and work! I saved a lot of time to develop from scratch. Thank you!!

Antonio Ruano

Christina Warmann

Very nice tool, very easy to handle.

Howard Brunsven

Excellent programming. Great tool. Unfortunately it doesn't work error free under Matlab 2006a. An update would be great!

Federico Robbio

This is an excelent toolbox for build out a tab panel with GUI...

Keith Campbell

Building/editing tabs is remarkably easy thru this platform. There is additional maitenance to ensure tags are properly assigned (esp with legends for graphics other than 'plot' fcn). Overall, though, this is an excellent way to build out a tab interface!!

Simon Challands

The problem with it only displaying one tab seems to be something to do with some sizes not being set somewhere. I've not enough GUI experience to have tracked down which property is at fault, but if you make your top level figure resizable you'll be able to resize it and see the missing tabs.

ebrahim sepidbar


Colin Clarke

Tried to add an axes, but it produces strange results. For example when i plot on the axis the axes becomes 'saved' i.e when i close matlab and start again the plot is displayed

Justin Nave

Worked great in coding, with a few cosmetic/documentation issues already covered in previous reviews.
But when I tried to run the gui on another machine, it only displays one tab. Not sure what's going on, but I could very well just be a mistake I made.

For anyone that is interested, and would like to point me in the right direction:
-I developed on a Fedora Core 3 machine, matlab R14SP3.
-It worked fine on another machine with the same OS ans Matlab.
-But on a RH 8.0 and matlab R14SP2 only one tab appeared.
-Same for a FC 1 machine w/ R14SP2.

Thanks in advance.

Christopher Crespo

This work is very good I'd like to know if will have the possibility of allowing the control to work in resize mode since I want to use as lateral panel such as matlab do in the main window

Peter Brodsky

Could be very useful tool, but documentation is sadly lacking. I tried following what little direction there is and ended up with a crash from Matlab on entering the "tabpanel" command listed:

>> tabpanel('myGUI', 'myTabPanel',{'TabPanel' 'Constructor' 'for' 'MATLAB'})
??? Attempt to reference field of non-structure array.

Error in ==> tabpanel at 236
      for i=tab.names(~ismember(tab.names,action))

Marco Rajapakse

Very good tool, hope mathworks will recognize it.
Keep up the good work.


First this is a great piece of work. Keep on Elmar!
I do have a question (maybe due to I am new). I used one UI control on the tab to trigger "visible" or "enable" of other controls. Users move between tabs make invisible controls all visible, overlaping each others. What did I do wrong or missed? Thanks in advance. CP

Alex Pudmenzky

Re: Gozde Cevik's comment of 2005-05-17. I discovered that both problems can be worked around by placing the axis on a UIpanel (R14 SP2).

Gozde Cevik

Thank you for your contribution to theMatlab world about the TabPanel! :)

However, I have some difficulties using the tabpanel.

1. I plot a figure on 'panela_axis1' for instance. Then, if I don't set the Tag of the axis again to 'panela_axis1', Matlab creates an element with Tag 'axis1' which in fact does not really exist. Then, I can neither access the 'panela_axis1' nor 'axis1', neither from my own code nor from tabpanel.m :( Why do we lose the Tag of the objects after we access them???

2. I plot a figure on 'panela_axis1', then I change the tab but see the same figure (only the data inside the axis) on the same location on the other panels. Is there a way to overcome this problem?

3. In my project, I will have to use this gui in a stand - alone application which will run on unix. I wonder whether the tabpanel will cause a problem in this procedure?

Anyway, you for your time and consideration :)

Best regards,


Marc Sch.

Really easy to use and a great result!
I'm curious about next versions...

Dave Tillman

TabPanel Constructor V1.3 is a very promising beginning for a very useful tool. Maybe The MathWorks will take notice...

However, it has a few deficiencies which cause me not to use it in production code at this time:

1) Tab labels really need to allow spaces.

2) I was unable to add an ActiveX control to a page. It was stripped out when integrating the page's FIG file back into the main figure.

3) I would prefer the background of the pages to default to be the same color as the background of the figure.

4) On my system, in order to get the Microsoft ActiveX TreeView control to function correctly, I have issued the command:
(There is a bulletin board post that discusses this). As a result the skins of the tabs are not as pretty (which is ok). However, when I right-click on the "options" button in the tab editor, I get a segmentation violation instead of the popup menu.

I understand that ActiveX is not for everyone, and if you have no need for ActiveX controls, TabPanel V1.3 would be very useful.

Alex Pudmenzky

Thank you for this contribution, I have been waiting a long time for this... :)
If you make the GUI "proportional" instead of "non-resizable", the tabs will extend to the top of the gui when selected with error message
??? Error using ==> set
Width and height must be > 0.
??? Error while evaluating uicontrol Callback.
Your tab-constructor is excellent otherwise!
Cheers, Alex.
(Elmar replied to me off-line that "proportional" is not supported ATM but that he will try and find a solution).

Elmar Tarajan

the problem with the compiler is already known. New version comes as fast as
possible. Please sign up on the subscribe list.

Yoav P

comment: what i ment is that i'm trying to compile an application that uses a tabpanel which is built using TabPanel 1.3....

Yoav P

the constructor is very nice, but i have a problem compiling it (Compiler 4.0) into a stand-alone application. the compiler has a problem with line 339 (tab.callback = [...]. looks for a function named 'tpchandles' and can't find it.
does anyone knows how to solve the problem?

Jorg Entzinger

TabPanel Constructor is a very nice piece of work, but I had a little problem with it in Matlab R13.

The figure made when calling the tabpanel function still had the name "untitled" which gave trouble when trying the edit button.

I fixed it by placing
between line 24 and 25 of your code

figname = [strrep(figname,'.fig','') '.fig'];
fig = openfig(figname,'reuse');
set(fig,'Name',figname); % By J.O.Entzinger
handles = guihandles(fig);

Tom Pachulka

Thanks a lot!

A couple of comments:

1. It took me some time to get it working properly, because I tried to use tab names with spaces. When there's a space in the tab name, it crashes.

2. It seems that the width of each tab (the visible part; the one you click to open the tab) is proportional to the length of its name. Personally I would prefer tabs of equal width.

Overall, a great tool!

Laine B. Kahsay

Great work, easy to use!
Finally there is a better way to create TabPanels in MATLAB.

Elmar Tarajan

use right mouse button on "settings" pushbutton

Juan Navas

Great, very handly, but how can i could the colors of the tabs and the backgrounds of them?



fixed bug while adding "TabSelectionChange"-Callback


* new features
* bug fixes
* code improvements


- creating tabpanel using location and size
- adding already existing figures as tab
- fixed problems using TPC after renaming the main figure


fixed: Error while closing TPC in R2009a/b
fixed: GUI-Restart while tab switching in R2009a/b

updated version (works with R2008a).
+ new user interface.
+ many new features.
- not compatible with older version 1.3!

MATLAB Release
MATLAB 7.10 (R2010a)

Inspired: uitabpanel, Simple Optimized GUI Tabs

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video