Creating multiple inputs depending on conditions
Mostra commenti meno recenti
Is there a way to create multiple inputs depending on initial condition? To be clear, for an example I want to create n inputs depending of numeric value of symbol n.
n=input('Input n');
and I enter 5 and I want to create 5 inputs automatically in real time, outputs should look like this:
a1=input('Input1')
a2=input('Input2')
a3=input('Input3')
a4=input('Input4')
a5=input('Input5')
Is that possible? Is there any way to create it?
1 Commento
There are ways, but only if you want to write slow, buggy, obfuscated code with major security risks. The MATLAB documenatation specifically advises to avoid doing this. Every expert on this forum will tell you not to do this. No matter that beginners think that creating or accessing dynamic variable names is a great idea and will solve all of their problems, it won't. It just causes more problems.
Use indexing. Indexing is fast, efficient, simple to write, simple to debug, simple to read, simple to understand,... and is the best way to solve your task. Like this:
C = cell(1,5)
for k = 1:numel(C)
C{k} = input('blah','s');
end
See how easy that was? And it is fast, efficient, and so simple, that anyone can understand it.
Read this to know why dynamic variables names is a bad way to write code:
Risposta accettata
Più risposte (1)
dpb
il 14 Apr 2017
1 voto
Of course, but I strongly recommend against building the N variables A1...AN. Ask the user for an array A instead with N elements.
Categorie
Scopri di più su Matrix Indexing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!