實驗二:數學軟體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日 實驗目的 通過對人口 問題的分析求解,了解利用最小二乘法進行資料擬合的基本思想,熟悉尋找最佳擬合曲線的方法,掌握建立增長...