How to create a dialog with multiple fields by using inputdlg on Mac?

13 visualizzazioni (ultimi 30 giorni)
It is the very first time I use Matlab on Mac. I am using Matlab R2013a on a Mac OSX 10.8.5.
I can create a simple dialog, with only one field, but I was not able to create a dialog with mutiple lines. I tried with my own programs but also with small toy examples I found in the tutorials.
For example:
I can run this:
if true
x = inputdlg('My single field dialog','dialog',1,'my single value');
end
But I can not run this:
if true
x = inputdlg({'field-1','field-2'},'dialog',1,{'value1','value2'});
end
I get the following error message:
Error using inputdlg (line 53) This function only accepts strings as its first parameter.
I can run inputdlg without any problem in my Linux machine.
Any help would be much appreciated!
Best regards

Risposta accettata

Robert Cumming
Robert Cumming il 28 Nov 2014
on your MAC try:
which -all inputdlg
to check that you haven't got a function name clash anywhere...
What is line 53 in the inputdlg function?
  1 Commento
Charles
Charles il 28 Nov 2014
Modificato: Image Analyst il 28 Nov 2014
That was an amazing suggestion!!!
I did what you suggested and I realized that I had 2 different inputdlg installed. The "original" one, and another version within a plugin folder (plugin HERMES - http://hermes.ctb.upm.es/ ). Like this:
/Users/charles/MatlabToolboxes/HERMES_2013-04-29/H_minifunctions/inputdlg.m
/Applications/MATLAB_R2013a.app/toolbox/matlab/uitools/inputdlg.m
I just removed the folder of this plugin from my PATH and my example ran perfectly! So, the 'inputdlg' function within HERMES plugin was different from the original one.
Thank you very much for your help!
Best regards,
Charles

Accedi per commentare.

Più risposte (1)

Image Analyst
Image Analyst il 27 Nov 2014
Did you look in the help and notice how they did it:
prompt = {'Enter matrix size:','Enter colormap name:'};
dlg_title = 'Input';
num_lines = 1;
def = {'20','hsv'};
answer = inputdlg(prompt,dlg_title,num_lines,def);
I'm sure you'll be able to adapt this with no problem.
  3 Commenti
Image Analyst
Image Analyst il 27 Nov 2014
I copied and pasted your exact code:
x = inputdlg({'field-1','field-2'},'dialog',1,{'value1','value2'});
and it worked fine. Are you sure that's exactly what you ran and not slightly different? If so, call the Mathworks because that should not happen.
Charles
Charles il 28 Nov 2014
Hi,
Thank you again for your reply.
Yes, I am sure it is exactly the example I ran. As I told before, this example works fine in my Matlab in Linux (Debian 3.10, Matlab R2011b), but doesn't work in my Mac version (Mac OSX 10.8.5, Matlab R2013a). Because of this I thought it could have some special settings for Mac.
I also thought it could be a problem with the array of strings.
Are you also running in a Mac OS X machine?
Thanks for the suggestion to call Mathworks. I will think about this.
Best,
Charles

Accedi per commentare.

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by