矩陣和數組的區別


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

 

《精通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表示數組里的數的平方

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM