數學建模與MATLAB 6

2021-10-07 20:52:37 字數 3341 閱讀 2846

專欄系列文章,想學習的朋友可以先看看前面的文章。

矩陣的建立有多種方法,最簡單的可以通過在命令列視窗直接輸入乙個矩陣。這適合建立比較小的矩陣,把矩陣元素放進方括號中,每行的元素用逗號或者空格進行分割,每列使用分號進行分割。

此外還可以通過語句或函式來生成矩陣,例如函式eye()用於生成單位矩陣。

另外,還可以通過m檔案來建立矩陣,或者從外部資料檔案中匯入矩陣,例如通過函式imread()讀取,從而獲得影象資料的二維矩陣。

這裡我們看乙個示例

clear all;a=[

1:4;

5:8]

f1=a(2

,3)f2=a(

2)f3=a(4

)

結果為:

在這裡,大家應該會對f2和f3的結果表示疑惑,大家請記住

在matlab中,矩陣是按列進行儲存的,所以a的第二個元素就是「5」,即f2為「5」;a的第四個元素是「6」,即f3為「6」。

接下來我們再看下乙個示例

clear all;a=[

1:4;

5:8;

9:12;

13:16]

f1=a(1

,:)f2=a(

:,3)

f3=a(1

:2,1

:2)f4=a(

1:end,end)

結果為:

a =1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

f1 =

1 2 3 4

f2 =37

1115

f3 =

1 25 6

f4 =48

1216

f1表示的是矩陣第一行的資訊,f2表示的是第三列的資訊,f3獲取乙個兩行兩列的矩陣,f4表示獲取矩陣的最後一列,end表示矩陣行或列的最後。

在matlab中,矩陣是通過列進行儲存的,先第一列再第二列,直到結束。矩陣元素可以通過單下標來獲取,也可以通過雙下標進行獲取,可以通過函式sub2ind()和ind2sub進行轉換。

我們來看一下示例:

clear all;a=[

1:4;

5:8;

9:12;

13:16]

ind1=

sub2ind

(size

(a),3,

4)a(ind1)a(

3,4)

[i,j]

=ind2sub

(size

(a),10)

ind2=

sub2ind

(size

(a),i,j)

a =

1     2     3     4

5 6 7 8

9 10 11 12

13 14 15 16

ind1 =

15
ans =

12
ans =

12
i =

2
j =

3
ind2 =

10
我們這裡可以看出用size()來獲取矩陣的大小(如果還有不太懂的,看看示例,我想很快也能明白的)

我們 再來看乙個例子

clear all;a=[

1:4;

5:8;

9:12;

13:16]

b=a>5a

(a>5)

=5f1=find

(a>4)

a(find

(a>4))=6

這裡的b=a>5表示的應該是 新建乙個矩陣b對應於a,大於5的在對應位置的值為1,小於或等於5的值為0。下面幾行**的意思我想應該也是很好理解的。

我們來看一下示例執行的結果:

a =

1     2     3     4

5 6 7 8

9 10 11 12

13 14 15 16

b =

0 0 0 0

0 1 1 1

1 1 1 1

1 1 1 1

a =

1     2     3     4

5 5 5 5

5 5 5 5

5 5 5 5

f1 =

2

3 46 7

8101112

1415

16

a =

1     2     3     4

6 6 6 6

6 6 6 6

6 6 6 6

應該還是非常好理解的,如果有困惑的地方可以去回顧溫習我前面的文章,當然收藏下來也是非常不錯的選擇哦!在程式中對矩陣的元素進行賦值,如果矩陣的行或列超出了矩陣的大小,則matlab自動擴充矩陣的大小,然後再進行賦值,擴充部分用零進行填充。

我們用乙個示例來簡單地看一下

可以看出在執行第四行**時,matlab自動地對矩陣進行了擴充

而最後一行**是想獲取矩陣第五行第五列的值,而這超出了矩陣的範圍所以會有報錯。

小白需要大佬們建議和指導!!

Matlab與數學建模

數學建模中,時常用到matlab畫圖,而繪製雙縱軸圖形有一定難度,在此提供一種雙縱軸繪圖函式 plotyy。具體 如下 t 0 0.02 pi 7 x cos t y exp t ax,ha,hb plotyy t,x,t,y ax 153.0322 156,0292 ha 155.1194 hb ...

MATLAB 6 數值微積分與方程求解

目錄 6.1數值微分與數值積分 6.2線性方程求解 6.3非線性方程求解與函式極值計算 6.4常微分方程數值求解 dx diff x 計算向量x的向前差分,dx i x i 1 x i dx diff x,n 計算向量x的n階向前差分 dx diff a,n,dim 計算矩陣的n階差分,dim 1時...

數學建模(MATLAB入門)

meshgrid 向量轉化為矩陣 x 3 1 3 y 1 1 5 x,y meshgrid x,y clc 清空命令列視窗螢幕 clear 清空資料 surf函式 繪製可以得到的是著色的三維曲面。shading函式 函式說明 是陰影函式控制曲面和圖形物件的顏色著色,即用來處理色彩效果的,包括以下三種...