2016-02-12 63 views
1

它看起來像一個太基本的工作。但是,我做不到。Math.js訪問矩陣中的單個元素

我加math.js到我的HTML代碼

<script src="js/math.min.js"></script> 

我在Firefox控制檯定義一個矩陣:

var M = math.matrix([[1,0,0,4],[0,1,0,2],[0,5,1,9],[11,2,3,1]]); 

到目前爲止,一切都很好。

M 
Object { _data: Array[4], _size: Array[2], _datatype: undefined } 

現在,我要訪問矩陣的一個元素:

M.index(1,2) 

我得到一個錯誤

TypeError: M.index is not a function

回答

3

It looks like you need to use math.index

M.subset(math.index(1, 2)); 

但正如作者指出的那樣,首選方法是使用.get

M.get([1, 2]); 

截至撰寫本文時,此功能是首選,但文檔仍在追趕。

+0

謝謝,它的工作。但是與普通數組相比,它應該是一個很長的過程嗎?在其他語言中,它就像'M [1] [2]'或'M.at(1,2)' – ar2015

+0

@ ar2015這就是庫設計人員如何構建它的。你不能在JavaScript中重載'[]'運算符,所以它們不能讓你執行'M [1] [2]'。至於他們爲什麼沒有把這種方法提供給矩陣「班級」,你就得問問他們。 –

+0

有沒有什麼方法可以將補丁函數添加到現有類中? – ar2015

1
M.get([1, 2])

除此之外,你還可以做 -

var a = M._data; // a is a multidimensional array 
console.log(a[1][2]);