Matlab練習——矩陣和數組的操作


題目來自:《戰勝MATLAB必做練習50道》

題目有更改,改成了我想寫的樣子。

1. 創建一個3×3矩陣,並將其擴充為4×5矩陣

clear;
clc;
mat1 = ones(3,3)
mat2 = zeros(3,3)
mat3 = rand(3,3)          %隨機矩陣
mat4 = randn(3,3)         %產生均值為0,方差σ^2 = 1,標准差σ = 1的正態分布的矩陣
mat4(4,5) = 10

2. 建立一個等比數列,然后由它產生一個對角陣,並存儲該矩陣。

clear;
clc;
a = logspace(0,4,5)
d1 = diag(a)
save mydate d1
%eye(m,n)生成一個m×n的單位矩陣

3. 調用上面存儲的矩陣,並由它產生一個列向量。

clear;
clc;
load mydate d1
d1
d2 = diag(d1)

4. 創建一個3×3魔方陣和相應的隨機矩陣,將兩個矩陣拼接起來。然后提取任意元素。

魔方陣:任意行、列及對角線之和相等。

clear;
clc;
mat1 = magic(3)
mat2 = rand(3,3)
mat3 = [mat1,mat2]     %橫向拼接
mat4 = [mat1;mat2]     %縱向拼接
mat5 = mat3(2:3,[1,3,4])   %提取第2、3行,第1、3、4列的元素
mat6 = mat3([1,3],[2,4])

5. 求矩陣的轉置矩陣。

clear;
clc;
mat1 = magic(3)
mat2 = rot90(mat1)     %旋轉矩陣
mat3 = mat1'           %轉置矩陣

6. 創建一個4×4單位矩陣,提取主對角線上的元素

clear;
clc;
mat1 = rand(4,4)
d = diag(mat1)

7. 創建一個4×5隨機矩陣,提取第一行和第二行中大於0.3的元素組成的矩陣。

clear;
clc;
mat1 = rand(4,5)
mat2 = mat1([1,2],[1,2,3,4,5])
mat3 = mat2(:)
k = 1;
for ii = 1 : length(mat3)
    if(mat3(ii) > 0.3)
        mat4(k) = mat3(ii);
        k = k + 1;
    end
end
mat4

8. 計算A×B×C。

clear;
clc;
A = rand(3)
B = magic(3)
C = rand(3,4)
A*B*C

9. A=[1,2,3],計算A‘ 與A 的積。

clear;
clc;
A = [1,2,3]
B = A'
A*B
B*A

10. 求5×5矩陣和4×3矩陣的逆矩陣

clear;
clc;
A = rand(5,5)
B = rand(4,3)
A1 = inv(A)             %inv只能對方陣求逆
B1 = pinv(B)            %pinv都可,包含了inv的功能
C = A*A1
D = B1*B    

11. 用兩種方法 求解Ax = b的解(A為4階隨機矩陣,b為4階列向量)

clear;
clc;
A = rand(4)
b = ones(4,1)
x1 = inv(A) * b
x2 = A\b                  %直接使用高斯消去法,速度快一些    

12. 算A的5次方,計算(0.5)^A

矩陣的乘方算法(A^p):

     ①  當p為正整數時,A^p表示A自乘p次

     ②  當p為負整數時,A^(-p)表示矩陣A-1自乘p次

     ③  當p為0時,A^0等於與A同維的單位矩陣

     ④  當p為分數時,若A可以分解為A = WDW-1,D為對角陣,則A^p = WDpW-1

標量的矩陣乘方(p^A):

     若A可以分解為A = WDW-1,D為對角陣,則可以定義標量矩陣乘方為:

 

clear;
clc;
A = rand(4)
B = A^5           %A自乘5次
C = (0.5)^A

 


免責聲明!

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



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