a way to use an empty char cell in inputdlg

1 view (last 30 days)
Hi, and Merry Christmas at all
I need to use an inputdlg box with La Tex interpreter setted at
options.Interpreter = 'tex';
my prompts return from a for loop; so I used sprintf function:
for i=1:3
w = sprintf('\\alpha\ %d', i);
e = sprintf('A %d', i);
r = sprintf('\\theta\ %d', i);
q = sprintf('D %d', i);
z = sprintf('\\sigma\ %d (rot=0, prism=1)', i);
Title = sprintf('LINK %d',i);
prompt = {w,e,r,q,z};
numlines=1;
answer=inputdlg(prompt,Title,numlines,defans, options);
but, since I don't care default answer, I thought to assign it an empty space like:
defans = {'','','','',''};
or
defans = cell(1,5);
defans{1} = char(defans{1});
defans{2} = char(defans{1});
defans{3} = char(defans{1});
defans{4} = char(defans{1});
defans{5} = char(defans{1});
but in both cases matlab returns the same warning message:
Warning: Escape sequence ' ' is not valid. See 'help sprintf' for valid escape
sequences.
I think because '' form is an Escape sequence for sprintf() function.
How can I use the LaTex interpreter and an empty space as default answer without Warning Message returning ?

Accepted Answer

Jan
Jan on 29 Dec 2012
Edited: Jan on 29 Dec 2012
You need the string e.g. '\alpha 3'. You can create this by:
str = ['\alpha ', sprintf('%d', 3)]
or
str = sprintf('\\alpha %d', 3)
The backslash is the special character, which tells LaTeX that a command is following. The space is no valid format, such that '\ ' creates the shown error message.
The Backslash is a special character for sprintf also, e.g. '\n' means a line break. Therefore you have to escape it by another backslash, to get one backslash in the created string.
If this solves your problem, the question could be simplified:
How can I create a string, which is displayed by the LaTeX interpreter as "\alpha 3", where \alpha means the Greek character and the number is taken from a variable?

More Answers (1)

Walter Roberson
Walter Roberson on 24 Dec 2012
backslash followed by space is not a valid sprintf() escape sequence.
Perhaps you need to use (e.g.) '\\\\alpha\\ %d'
  10 Comments
Walter Roberson
Walter Roberson on 28 Dec 2012
What string is it that you would like to reach LaTex ?
Marco
Marco on 29 Dec 2012
I would like to interpret alpha (as greek symbol) with the number of for-loop index i by %d.

Sign in to comment.

Categories

Find more on Labels and Annotations in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!