Variable in input prompt

I am trying to have a counter for the specific object the data of which is currently being entered.
I tried:
for n = 1:10
input_matrix(2:3,n) = input(['Enter the Mass and Volume in brackets [Mass Volume] of Object # ' n '']);
dens(n) = input_matrix(2,n) / input_matrix(3,n);
end
but it shoes a Box instead of n. Please help, thank you.

Answers (2)

Use a sprintf call:
input_matrix(2:3,n) = input(sprintf('Enter the Mass and Volume in brackets [Mass Volume] of Object # %d: ', n))

2 Comments

Hey it works now. Thank you so much! :)
out of curiosity, why was it showing a box?
My pleasure!
The box is an unprintable character. That has to do with mapping ‘n’ to the ASCII character codes. If ‘n’ does not match a printable character, a box of some sort appears in its place.
If my Answer helped you solve your problem, please Accept it!

Sign in to comment.

You would need to convert the number to a string to display it. Closest to your syntax would be
input(['Enter the Mass and Volume in brackets [Mass Volume] of Object #',num2str(n)])
but preferable would be
input(sprintf('Enter the Mass and Volume in brackets [Mass Volume] of Object #%d: ',n))

1 Comment

Thank you, the sprintf works like a charm.

Sign in to comment.

Asked:

on 8 Aug 2017

Commented:

on 8 Aug 2017

Community Treasure Hunt

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

Start Hunting!