Filter löschen
Filter löschen

Variable in input prompt

11 Ansichten (letzte 30 Tage)
Musaddiq Sajjad
Musaddiq Sajjad am 8 Aug. 2017
Kommentiert: Star Strider am 8 Aug. 2017
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.

Antworten (2)

Star Strider
Star Strider am 8 Aug. 2017
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 Kommentare
Musaddiq Sajjad
Musaddiq Sajjad am 8 Aug. 2017
Hey it works now. Thank you so much! :)
out of curiosity, why was it showing a box?
Star Strider
Star Strider am 8 Aug. 2017
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!

Melden Sie sich an, um zu kommentieren.


the cyclist
the cyclist am 8 Aug. 2017
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 Kommentar
Musaddiq Sajjad
Musaddiq Sajjad am 8 Aug. 2017
Thank you, the sprintf works like a charm.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by