# How introduce inputs in a @interact sage program

 1 Concretely, how tranlate the following MATLAB program to SAGE: n=input('number of vertices n= '); m=input('number of edges m= '); disp('write weighted edges as [v1 v2 w12]'); for i=1:m E(i,:)=input(['arco ',num2str(i), '= ']); end disp(E)  asked Jan 17 '12 canisvetus 11 ● 1 ● 8 kcrisman 7427 ● 17 ● 76 ● 166 Can you say exactly what this program is doing? It looks like you might have two different questions - one about how to get Sage to do this graph theory thing (listing the vertices and weights of the weighted edges?), the other about how to turn that into an interact.kcrisman (Jan 17 '12)exactly, for introduce a concrete graph I need know the number of vertices, the number of arcs and use these inputs for introduce other inputs of second levelcanisvetus (Jan 17 '12)

 3 I don't know of a way to do this with the current interact implementation in Sage. You can do it with the singlecell server (which just executes a single Sage command, but you can embed it in any webpage), and hopefully soon the new interact implementation in the singlecell server will make its way back into Sage. For example, see this example on aleph.sagemath.org: @interact def f(numbers=(1,10,1)): @interact(controls=[('x%d'%i, (0,10)) for i in range(numbers)]) def s(multiplier=2, **kwargs): expr = "%s*(%s)"%(multiplier, '+'.join(sorted(kwargs))) print "%s is %s"%(expr, sum(kwargs.values())*multiplier)  Of course, if you just want to get input from the user in the notebook, you can just ask them to define the variables. posted Jan 17 '12 Jason Grout 3305 ● 7 ● 28 ● 74 So we'll finally have a resolution to "have interact controls depend on other controls"? Amazing!!!kcrisman (Jan 17 '12)See also (apparently) http://ask.sagemath.org/question/261 and Trac ticket 3836 (I think, internet is slow right now for me).kcrisman (Jan 17 '12)

[hide preview]