Assign different materials to a range of same prefab?

this is surely basic, but the help files don't make sense to me, and can't find a matching answer in here.

I have a cube prefab. I create 5 of them at launch, each named uniquely, using an array that iterates through a for loop up to the 5. and, while placing them, I want to assign a different material to each one. The materials are named "instrument1" thru "instrument5" and currently in the Project.

Here's what I thought would be the manual/reference page to show how to do this, but it makes no sense to me.

http://unity3d.com/support/documentation/ScriptReference/Renderer-material.html

var materials is an array of Material[]???? which materials? What are their names? How are they being referenced/arrayed?

and why is their a "sharedMaterial", surely this is not being shared.

Just assign a material to each prefab. It would be easier if you used an array of materials instead of separate variables. As for "which materials", they are whatever materials you assign in the inspector. They're referenced like any other array (by number).

var prefab : GameObject;
var materials : Material[];

function Start () {
    for (i = 0; i < materials.Length; i++) {
        var clone = Instantiate(prefab);
        clone.renderer.material = materials*;*
 *}*
*}*
*```*
*<p>sharedMaterial is for assigning a single material to multiple objects, so it's shared.  Changing the sharedMaterial of one object would cause the material on all of them to be changed.</p>*