# How to build and operate a master Notebook?

Suppose you have some notebooks, they work for a family of related tasks, each one doing a certain task. Lets say Notebook 1 gets two inputs from its variables in11 and in12, and produces one output to out1. The other Notebook 2 gets two inputs from its variables in21 and in22, and produces one output to out2.

How can we set up a kind of master notebook where just the decision to select a specific
task should be made, the assignments to the variables are made, and the result of the calculation is shown. The two working notebooks themselves should be in the same folder on your disk, and a call from the open master notebook pipes them their respective inputs and outputs.

-
Any specific reason for not using a package? – Yves Klett Mar 26 '13 at 15:30

Simple example. In nb1.nb put, say, the Input cell:

in11 = "In 11  ";
in12 = "In 12";
out1 = Row[{in11, in12}]


And in nb2.nb put the Input cell:

in21 = "In 21  ";
in22 = "In 22";
out2 = Row[{in21, in22}]


In master.nb put the Input cell:

dir = NotebookDirectory[];
NotebookEvaluate[FileNameJoin[{dir, "nb1.nb"}]];
NotebookEvaluate[FileNameJoin[{dir, "nb2.nb"}]];
Column[{out1, out2}]


Save all three notebooks in the same directory (or modify the code in master.nb accordingly). Then evaluating that cell in master.nb will produce

In 11  In 12
In 21  In 22


which means, of course, that the Input cells in both nb1.nb and nb2.nb have been evaluated, so that values have been given to out1 and out2, respectively.

-
I like this. . .And if you want to pass some variable values from nb1.nb to master.nb in the first place? . . .So the master.nb acts like a function. . .Get a value and return a value. – Hp Radojewski Schäfer Von Mar 28 '13 at 7:36
What makes all this work is the fact that, by default, all values set in one notebook are available to all other notebooks at the same Mathematica kernel session. (Unless you take steps to restrict the Context of a notebook.) – murray Mar 28 '13 at 11:12