1. 程式人生 > >矩陣和數組的區別

矩陣和數組的區別

tla width 分享 ref a* 有著 兩種 構造 nes

數組中的元素可以是字符等
矩陣中的只能是數
這是二者最直觀的區別。
因為矩陣是一個數學概念(線性代數裏的),數組是個計算機上的概念。
你見過純粹數學中有數組的概念嗎?沒有。
因為計算機上(準確的說是信息科學中)常用到線性代數的知識,就引用了矩陣的概念。

《精通MATLAB6.5版》(張誌湧編著,北京航空航天大學出版社)中說: 從外觀形狀和數據結構上看,二維數組和數學中的矩陣沒有區別。但是矩陣作為一種變換或映射算子的體現,矩陣運算有著明確而嚴格的數學規則。而數組元算是Matlab軟件所定義的規則,其目的是為了數據管理方便、操作簡單、指令形式自然和執行計算的有效。雖然數組運算尚缺乏嚴謹的數學推理,雖然數組運算仍在完善和成熟中,但是它的作用和影響正隨著matlab的發展而擴大。 數組運算: 數與數組加減:k+/-A %k加或減A的每個元素 數組乘數組: A.*B %對應元素相乘 數組乘方:  A.^k %A的每個元素k次方;k.^A,分別以k為底A的各元素為指數求冪值 數除以數組: k./A和A./k %k分別被A的元素除 數組除法: 左除A.\B右除B./A,對應元素相除 矩陣運算: 數與矩陣加減:k+/-A %等價於k*ones(size(A))+/-A 矩陣乘法: A*B %按數學定義的矩陣乘法規則 矩陣乘方:  A^k %k個矩陣A相乘 矩陣除法: 左除A\B右除B/A %分別為AX=B和XA=B的解 可見,數組的運算很簡單。若不考慮數學意義時,矩陣是數組的二維版本。 構造數組: 1、直接構造:用空格或逗號間隔數組元素 x=[1,2,3,4,5,6] 2、增量法構造:使用冒號操作符創建數組 a=first:end %遞增,且步長為1的數組 a=first:step:end %指定增量步長值創建任何等差序列 3、用linspace函數構造 x=linspace(first,last,num) %需要指定首尾值和元素總個數,步長根據num平均分配 構造矩陣 1、簡單創建方法 用[],逗號或空格格開各元素,分號隔開各行,註意各行具有相同的元素個數。 2、構造特殊矩陣 ones,zeros,eye,diag,magic,rand,randn,randpem .....

NumPy矩陣與數組的區別

矩陣matrix和數組array是NumPy裏的兩種數據類型,都可以用於處理行列表示的數字元素。

1.matrix只能是2維的,array可以是任意維數。

隨機初始化實例:

技術分享圖片 技術分享圖片

2.在這兩個數據類型上執行相同的數學運算會得到不同的結果

對於a,b兩個matrices,a*b表示矩陣乘積

技術分享圖片 


對於array來說,a*b表示逐個元素相乘

技術分享圖片

 **運算符表示的含義也不同,對於maxtrix來說,a**2表示a*a

技術分享圖片

對於array來說,a**2表示數組裏的數的平方

 技術分享圖片

矩陣和數組的區別