數學軟體MATLAB實驗報告實驗二

2021-07-25 06:50:19 字數 5081 閱讀 1139

實驗二:數學軟體matlab的資料型別

實驗目的與要求:

掌握matlab的陣列、矩陣、字串、多維陣列、結構陣列、單元陣列和函式控制代碼等資料型別。

實驗內容:

1.常數

在命令視窗中分別鍵入:

rho=(sqrt(5)-1)/2

a=abs(3+4i)

realmax

huge=exp(log(realmax))

toobig=pi*huge

觀察執行結果。

2.變數

函式iskeyword的功能是:

判斷輸入引數是否是matlab中的關鍵字

在命令視窗中鍵入命令iskeyword並記錄結果。

3.輸出格式

練習使用format命令設定變數的輸出格式。

format:以5位定點格式輸出變數值。

format short e:以5位浮點格式輸出變數值。

format short g:以5位定點與5位浮點中選擇最好的格式表示。

format long:以15位定點格式輸出double型變數值。

format long e:以15位浮點格式輸出double型變數值。

format hex:以16進製制輸出變數值。

format +:在矩陣中,用符號+、-和空格分別表示正號、符號和零。

format compact:變數之間沒有空行。

format loose:變數之間有空行。

4.練習在matlab中構造一位陣列的方法。

(1)用空格或逗號間隔一維陣列元素,然後用方括號括起來即可構建一維陣列(行向量)。

(2)利用matlab提供的冒號運算子(first:step:last)格式可以生成一維陣列(行向量)。step=1時可以省略,即為(first:step)格式

5.練習在matlab中構造二維陣列(矩陣)的方法。

6.練習在matlab中如何獲取矩陣的元素。

演示:a=magic(4)%生成乙個4階幻方陣

a = 16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

b1=a(4,3)

b1 =

15b2=a(12)

b2 =

15b3=a(1,end)

b3 =

13b4=a(end)

b4 =

1b5=a(end,3)

b5 =

15linearindex=sub2ind(size(a),4,2) %獲取線性索引值

linearindex =

8[row,col]=ind2sub(size(a),12) %獲取行列索引值

row =

4col =

3b1=a(2,:)

b1 =

5 11 10 8

b2=a(:,3)

b2 =

310615b3=a(:)

b3 =

16594211714310615138121c1=a(2:4,:)

c1 =

5 11 10 8

9 7 6 12

4 14 15 1

c2=a(2:4,[1 2 4])

c2 =

5 11 8

9 7 12

4 14 1

7.練習在matlab中如何獲取與矩陣有關的資訊。

8.練習在matlab中如何建立字串。

a='china';

whos a

name sizebytes class

a 1x510 char array

可見,a是乙個1行5列的字元陣列。

class(a)%測試a的資料型別

ans =

char

ischar(a)%測試a是否為字串資料型別

ans =

19.練習在matlab中如何建立二維字串。

10.練習在matlab中資料型別的轉換。

11.比較字串

在命令視窗中鍵入:

str1=『hello』;

str2=『help』;

strcmp(str1,str2)

解釋執行結果:因為str1和str2不相等,所以呼叫strcmp函式時返回0(false)。

在命令視窗中鍵入:

strcmp(str1,str2,3)

執行結果

解釋執行結果:因為str1和str2前三個字母相等,所以呼叫strcmp函式時返回1(true)。

在命令視窗中鍵入:

strcmp(str1,str2,4)

執行結果:

解釋執行結果:因為str1和str2前四個字母不相等,所以呼叫strcmp函式時返回0(false)。

在命令視窗中鍵入:

a=;b=;

strncmp(a,b)

執行結果:

解釋執行結果:a和b的第一組元素hello和help不相等,所以呼叫strcmp函式時返回0(false);其第二組元素都是pen,相等,所以呼叫strcmp函式時返回1(true);a和b的第三組元素rule和pencilbox不相等,所以呼叫strcmp函式時返回0(false)。

在命令視窗中鍵入:

strncmp(a,b,3)

執行結果:

解釋執行結果:

12.練習使用matlab的關係運算子(>,>=,<=,==,~=)比較字串.

a='face';b='cake';

a==b

ans =

0 1 0 1

a>=b

ans =

1 1 0 1

a>bans =

1 0 0 0

13.練習聚合字串。

演示1for n=1:6

a=['a',int2str(n)];

enda

a ='a1' 'a2' 'a3' 'a4' 'a5' 'a6'

演示2:

for m=1:8

b= sprintf ('b%d',m);

endb

b ='b1' 'b2' 'b3' 'b4' 'b5' 'b6' 'b7' 'b8'

演示3:

i=2;j=5;k=8;

a=sprintf ('i=%d,j=%d,k=%d.',i,j,k)

a =i=2,j=5,k=8.

●用strcat函式也可以把兩個或更多字串合在一起。

演示:m=2010;a1='china';a2='xuzhou';

c=strcat(a1,',',a2,',',int2str(m))

c =china,xuzhou,2010

14.練習在matlab中如何生成多維陣列。

用索引生成多維陣列

建立多維陣列的方法之一是先建立乙個二維陣列,然後擴充套件它。

演示:a=[1 2 3;4 5 6;7 8 9];a(:,:,2)=[1 0 4;3 5 6;9 8 7];a(:,:,3)=8;

aa(:,:,1) =

1 2 3

4 5 6

7 8 9

a(:,:,2) =

1 0 4

3 5 6

9 8 7

a(:,:,3) =

8 8 8

8 8 8

8 8 8

這就得到了乙個3維陣列a,再把a擴充套件成乙個的4維陣列:

a(:,:,1,2)=[1 2 3;1 2 3;1 2 3];

a(:,:,2,2)=[9 8 7;6 5 4;3 2 1];

a(:,:,3,2)=[1 0 1;0 1 0;0 1 1];

用matlab函式生成多維陣列

●用randn,ones和zeros函式等生成多維陣列。

演示:a=randn(4,3,2)%建立乙個標準正態分佈隨機數的3維陣列。

●用repmat函式生成乙個元素均為同一常數的陣列。

演示:b=repmat(8,[3 4 2])

用cat函式生成多維陣列

cat函式是建立多維陣列的一種簡單方式,它按指定的維數將多個陣列聚合在一起,其呼叫格式為:

b=cat(dim,a1,a2,…)

其中a1,a2等是進行聚合的陣列,dim是維數。

演示:a=cat(3,[1 2;3 4],[1 3;5 7])

a(:,:,1) =

1 2

3 4

a(:,:,2) =

1 3

5 7

b=cat(3,[5 6;7 8],[2 4;6 8]);

d=cat(4,a,b,cat(3,[1 9;9 1],[1 8;8 1]))

15.練習在matlab中如何建立結構陣列。

⒈ 使用賦值語句

可以通過將資料賦給單獨的字段來生成乙個簡單的結構陣列。

演示:'wang meng';

student.id=08;

student.test=[79 75 73 80;88 89 80 95]

student =

name: 'wang meng'

id: 8

test: [2x4 double]

student是乙個包含有3個字段的結構陣列。要擴充套件該結構陣列,在結構名後面新增索引號即可。

演示:student(2).name='zhang lei';

student(2).id=10;

student(2).test=[68 77 68;69 65 71;82 61 98]

student =

1x2 struct array with fields:

name

idtest

數學軟體MATLAB實驗報告實驗四

實驗四 數學軟體matlab的繪製圖形 實現目的與要求 熟練掌握利用matlab提供的繪圖函式繪製基本二維圖形 三維線性圖和表面圖 掌握利用matlab提供的函式繪製線性圖 條形圖等實用圖形。實驗內容 1 在乙個座標系中繪製線形圖 條形圖 面積圖。程式 x 1 2 3 4 5 6 7 8 y 10 ...

MATLAB數學實驗報告

matlab 數學實驗報告 一 實驗目的 通過以下四組實驗,熟悉matlab的程式設計技巧,學會運用matlab的一些主要功能 命令,通過建立數學模型解決理論或實際問題。了解諸如分岔 混沌等概念 學會建立malthu模型和logistic模型 懂得最小二乘法 線性規劃等基本思想。二 實驗內容 2.1...

MATLAB數學實驗報告

人口統計與 指導老師 王寧 實驗者 核工程93 孔海宇 09032064 核工程93 萬承輝 09032075 核工程93 張勇 09032082 實驗日期 2010年5月28日 實驗目的 通過對人口 問題的分析求解,了解利用最小二乘法進行資料擬合的基本思想,熟悉尋找最佳擬合曲線的方法,掌握建立增長...