[英]What is the difference between matrix and array?
什么是更普遍的術語? 為什么MATLAB命名為矩陣實驗室呢?
矩陣是表示以nxm標量值數組的形式從維n的空間到維m的空間的線性變換的實用方法。
以非常系統的方式執行線性代數操作也是非常實用的,可以在計算機上實現。 例如,如果矩陣A表示線性變換f而矩陣B表示線性變換g ,則組成f o g寫為A * B,其中*
表示矩陣乘法。 Matlab還有許多與矩陣運算相關的例程(即線性代數運算),如det
, pinv
, svd
等......
正如您現在仍然可以在Matlab中看到的那樣,像*
, /
這樣的運算符與矩陣運算密切相關,因而與線性代數運算密切相關,我認為這是matlab在其早期闡述中的最初目標,因此它的名字(當然是非常具有推測性)但是猜測離現實不遠)。
要對n維數據集執行逐元素操作,您必須編寫.*
或./
。 表示您現在正在執行數組操作 。
我不會說數組操作包含矩陣運算 ,它們是不同的。 后者與線性代數有關,而其他則只涉及對大型數據集進行操作的實用方法。 這些數據不限於數字,它們只是n維數據集(字符串,數字,單元格等)。
Matlab還具有非常合成的語法,可以對子塊(即線性/邏輯下標)執行數組操作 ,這使得在應用后續矩陣或數組操作之前,只需在一行代碼中重新組織數據集就非常容易。
如果您詢問MATLAB,“矩陣”一詞通常是指2d陣列,而“陣列”可以是n維。
早期版本的MATLAB僅支持2d矩陣,而不支持n維數組。 我相信在MATLAB的第5版中引入了對n維數組的支持。
我會說MATLABs矩陣是一種更高級的數組,如果你比較c樣式數組,例如double array[]
,或Java數組,例如double arry2[]
。 我還要說matlab矩陣比c ++向量或Java ArrayList更適合數學目的。 但是,如果你的意思是matlab數組,我會說它更復雜。 然后我會推薦關於matlab數據的鏈接,它描述了mxArray
類型,用於存儲matlab中的大部分數據。 如果沒有更好地描述你對數組的意思,這個問題很難完全回答,但我會說,關於類型,像a = [1,2,3,4]
這樣的數組和像b = [1,2,3,4;5,6,7,8]
這樣的矩陣沒有區別b = [1,2,3,4;5,6,7,8]
。 還有更高維度的矩陣,因為c = ones(3,4,3)
。 這些通常在MATLAB中也稱為矩陣,或者如果您需要更具體的N維矩陣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.