陣列在這個例子中我試圖創建長度5的陣列,其中每個ellement含有的倍0.3數函數返回一個值可以在不超過1相加。即3次。因此,每個元素應該包含數字3。這裏是我的代碼:如何從用於初始化的Mathematica
Array[(
workingCount = 0;
workingSum = 0;
done = false;
While[! done,
workingSum = workingSum + .3;
If[workingSum > 1, done = true; workingCount, workingCount++]
])
, 5]
在第3至最後一行有我有沒有workingCount
後它;
,因爲它似乎是在數學省略;
導致價值的說明決定返回。
相反,我得到這個:
{Null[1], Null[2], Null[3], Null[4], Null[5]}
爲什麼會出現這種情況?我怎樣才能讓我的程序做我想做的事?即在傳遞給Array以初始化元素的函數的上下文中,如何使用複雜的多行函數?
在此先感謝。
而且,我忘了提,你的情況,你需要一個return語句,這就是爲什麼你的陣列將填充空值。或者,不像我向您展示的命名函數那樣,您可以使用@belisarius建議的匿名函數(&符號)。 – jrd1
你應該返回workingCount,而不是workingSum :) –
啊!我明白你在說什麼@belisarius。接得好!編輯。 – jrd1