2013-05-02 54 views
0

我有A排列的號碼的下一個序列(是一個數組1D)Python函數,它將調用一維矢量值

  1. -1.7654142212e-06
  2. 7.0737426918e-07
  3. 1.63230254789 E-06
  4. 1.88255344022e-06
  5. 5.00966829007e-06
  6. 1.88631278169e-06
  7. -4.08751917695e-06
  8. 9.12971786351e-07
  9. 5.33615185204e-06
  10. -1.01338496378e-05

是100個值,只說只有10

我需要的是一個將調用這些數字的函數。

編輯

使用X,X = np.linspace(0,1000,10)

我用scipy.interpolate.interp1d及其工作不那麼好...

編輯

插值採取第一個和最後一個值,並進行aproximation。 在我的情況下,值太小,準確性很重要。 此外,每個x步的A值都會發生變化,足以在幾次迭代後導致錯誤。

所以,如果我們的陣列是

A =((-1.7654142212e-06,......, - 1.01338496378e-05))`

我需要一個功能類似的工作:

編輯

ea A_FUNCTION(0)= -1.7654142212e-06 ....

要調用我想要的任何值,而不調用值的近似值(對於x的特定#號)在主或另一個函數內第二個腳本。

+1

你想做插值。關於'scipy.interpolate.interp1d':*它不能很好地運作*是什麼意思?顯示您嘗試的代碼,以及您得到的完整錯誤消息,或解釋如何按預期工作。 – 2013-05-02 20:20:50

+0

我需要這個數組是一個函數,因爲我用它作爲函數中的參數,它被另一個腳本中的另一個函數調用。 當我嘗試在函數內部這種格式使用它: EA打印(K [1]) 我得到錯誤: IndexError:用作索引陣列必須是整數(或布爾)類型 任何建議的? – user1640255 2013-05-02 21:10:16

+0

我正在嘗試一個多月來解決這個問題,並不是一件容易的事。我的代碼有2個腳本。一個數組有100個值,一個函數的參數。第二個腳本需要A數組值,這是在第一個腳本中計算的。在主腳本函數中,我將A作爲參數。該函數是一個像這樣的方程u'-Au-5 = 0 這是一個100方程的系統,每個方程都有一個特定的A值!當第二個腳本函數調用這個函數100次時,我需要每次都有A的模擬值。只有製作一個功能,我設法做到這一點,但不工作。 – user1640255 2013-05-02 21:24:44

回答

1

你爲什麼不只是創建一個函數有兩個輸入端:一個數組,數

In [15]: A 
Out[15]: 
array([-4611686018427387904, -4611686018427387904,     7, 
          0, -4611686018427387904, 5764616295532855496, 
     -4611686018427387899, -4611686018427387904,     4, 
      1407374883553280]) 

In [16]: def grab_item(array,number): 
    ....:  return array[number] 
    ....: 

In [17]: grab_item(A,8) 
Out[17]: 4 

的評論衆多後,這裏是通過使用此功能,你想要的是什麼,我相信一個例子:

In [24]: x = np.linspace(0,1000,100) 

In [25]: grab_item(x,9) 
Out[25]: 90.909090909090907 
+0

我不能做到這一點,我嘗試這樣做: A_F = grab_item(A,X) 其中x = np.linspace(0,1000,100) ERROR 用作索引必須是整數(或布爾)的陣列型 – user1640255 2013-05-02 21:42:55

+0

爲什麼你不能那樣做?你真的不清楚你需要什麼? – 2013-05-02 22:31:05

+0

因爲我需要的函數而不是「8」有x [line],因此如果x是數組而line是數字,則該行是從0-99的數字 – user1640255 2013-05-02 23:16:19