First time here? Check out the FAQ!

Ask Your Question
1

How introduce inputs in a @interact sage program

asked 13 years ago

anonymous user

Anonymous

updated 13 years ago

kcrisman gravatar image

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)
Preview: (hide)

Comments

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 gravatar imagekcrisman ( 13 years ago )

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 level

canisvetus gravatar imagecanisvetus ( 13 years ago )

1 Answer

Sort by » oldest newest most voted
3

answered 13 years ago

Jason Grout gravatar image

updated 12 years ago

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 exampleon 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.

Preview: (hide)
link

Comments

So we'll finally have a resolution to "have interact controls depend on other controls"? Amazing!!!

kcrisman gravatar imagekcrisman ( 13 years ago )

See also (apparently) http://ask.sagemath.org/question/261 and Trac ticket 3836 (I think, internet is slow right now for me).

kcrisman gravatar imagekcrisman ( 13 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 13 years ago

Seen: 9,969 times

Last updated: May 24 '12