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

조회 수: 12 (최근 30일)
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

채택된 답변

Robert Cumming
Robert Cumming 2014년 11월 28일
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
Charles
Charles 2014년 11월 28일
편집: Image Analyst 2014년 11월 28일
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

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2014년 11월 27일
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
Image Analyst
Image Analyst 2014년 11월 27일
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 2014년 11월 28일
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

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by