![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SMhF2MjRWNjVmNiVmZ1YWOiJWMiF2Y5MWMwM2NxczMy8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
點選藍字關注我們
Matlab 簡介
1. 指令行的編輯
啟動Matlab 後,就可以利用Matlab 工作。由于Matlab 是一種互動式語言,随時輸入指令,即時給出運算結果是它的工作方式。
2*sin(0.3*pi)/(1+sqrt(5)) ↵
ans=0.5000
(ans 是一個保留的 Matlab 字元串,它表示上面一個式子的傳回結果,用于結果的預設變量名)
2. 入門示範
intro↵ demo↵
3. 幫助
① help↵ %幫助總攬 help elfun↵ %關于基本函數的幫助資訊 help exp↵ %指數函數 exp 的詳細資訊
② lookfor 指令
當要查找具有某種功能但又不知道準确名字的指令時,help 的能力就不夠了,lookfor可以根據使用者提供的完整或不完整的關鍵詞,去搜尋出一組與之相關的指令。
lookfor integral↵ %查找有關積分的指令
lookfor fourier↵ %查找能進行傅利葉變換的指令
③ 超文本格式的幫助檔案
在Matlab 中,關于一個函數的幫助資訊可以用 doc 指令以超文本的方式給出,
如:
doc↵
doc doc↵
doc eig↵ %eig 求矩陣的特征值和特征向量 ④ pdf 幫助檔案
4. 簡單的矩陣輸入
① 要直接輸入矩陣時,矩陣元素用空格或逗号分隔;矩陣行用分号“;”隔離,整個矩陣放在方括号“[ ]”裡。
A=[1,2,3;4,5,6;7,8,9]↵
說明:指令執行後,矩陣A 被儲存在 Matlab 的工作間(workspace)中,以備後用。如果使用者不用 clear 指令清除它,或對它進行重新指派,那末該矩陣會一直儲存在工作間中,直到本 Matlab 指令窗關閉為止。
② 矩陣的分行輸入
A=[1,2,3
4,5,6
7,8,9]
5. 語句與變量
① Matlab 語句有兩種最常見的形式
i) 表達式
ii)變量=表達式
[例1] 表達式的計算結果 1996/18↵
ans=110.8889
[例2] 計算結果的指派
s=1-1/2+1/3-1/4+1/5-1/6+... 1/7-1/8;↵
說明
✔三個小黑點是“連行号”,
✔分号“;”作用是:指令執行結果将不顯示在螢幕上,但變量 s 将駐留在記憶體中。
✔若使用者想看 s 的值,可鍵入以下指令:
s↵
(s=
0.6345)
② 特殊變量
ans 用于結果的預設變量名
pi 圓周率
eps 計算機的最小數
flops 浮點運算次數
inf 無窮大 如 1/0
NaN 不定量 如 0/0
i(j)
nargin 所用函數的輸入變量數目
nargout 所用函數的輸出變量數目
realmin 最小可用正實數 realmax 最大可用正實數
6. 資料結構:向量、矩陣、結構數組和細胞數組
①向量的轉置
z=[1+j,2+pi*i,-sqrt(-1)]’
z =
1.0000 - 1.0000i
2.0000 - 3.1416i
0 + 1.0000i
當對複數向量進行轉置操作時,可以得到其共轭轉置向量。
z.' (非共轭轉置向量)
②産生一個行向量
t=[0:0.1:10] %産生從 0 到 10 的行向量,元素之間間隔為 0.1
t=linspace(n1,n2,n)
%産生 n1 和 n2 之間線性均勻分布的 n 個數 (預設 n 時,産生 100 個數)
t=logspace(n1,n2,n) (預設 n 時,産生 50 個點)
③ who,whos,size 和 length 是對提供工作空間變量資訊很有用處的四個指令。
who 執行該指令可列出儲存空間的所有變量
whos 顯示所有的變量,變量所占的位元組數及該變量是否是實數
size(a) 執行該指令可以得到矩陣 a 的行數與列數
length(a)執行該指令後,螢幕上顯示出向量 a 的長度。如果 a 是矩陣,則顯示的參數為行數列數中的最大數。
④ 矩陣的标号
A(m,n)表示矩陣 A 的第 m 行,第 n 列的元素;
A(1:2,1:3)表示矩陣 A 的從第一行到第二行,從第一列到第三列的所有元素;
A(:) 可以得到一個長向量,該向量的元素是按列一一疊加在一起的。例如 a=[1 2;3 4];a(:)↵
ans=
1
3
2
4
矩陣的下标也可以是向量。例如
b=a(x,y)↵; 可以得到一個矩陣 b。a 的行标來自向量 x,而列标來自向量 y。
例如,矩陣 a 有 n 列,那麼
b=a(:,n:-1:1)
将使矩陣 a 按列的逆序排列。
⑤ 特殊矩陣
i)機關矩陣
eye(m),eye(size(a)) 可以得到與矩陣 a 同樣大小的機關矩陣,eye(m,n)可得到一個可允許的最大機關矩陣而其餘處補 0。
ii)所有元素為 1 的矩陣
ones(n),ones(size(a)),ones(m,n)
iii)所有元素為 0 的矩陣
zeros(n),zeros(m,n)
iv)空矩陣是一個特殊矩陣,這線上性代數中是不存在的。
例如: q=[ ]
矩陣 q 在工作空間之中,但它的大小為零。通過空陣的辦法可以删去行與列。
例如
a=rand(5);a(:,1:3)=[]
第一條指令執行後得到一個5×5 的矩陣;第二條指令将矩陣 a 的前三列删除。
v) 對角矩陣
當 v 是向量時,diag(v)得到以 v 的元素為對角線上元素的對角矩陣;
當 v 是矩陣時,diag(v) 得到一個列向量,其元素為矩陣 v 對角線上的元素,diag(v,1)得到矩陣 v 對角線上移一行的元素組成的列向量,diag(v,-1)得到矩陣 v 對角線下移一行的元素組成的列向量。
⑥ 字元串要用單引号
例如:
disp('text string') % disp 顯示指令
還 有 幾 個 字 符 串 命 令 可 以 作 為 文 字 說 明 和 繪 圖 标 題 說 明 等 , 如 num2str,int2str,fprintf 和 sprintf。同樣,可以借助于 help 指令了解它們的具體用法。
⑦ 結構數組
有時需要将不同的資料類型組合成一個整體,以便于引用。這些組合在一個整體中的資料是互相聯系的。例如,一個學生的學号、姓名、性别、年齡、成績、家庭位址等項都是和該學生有聯系的。
下面簡單介紹結構體的定義與引用。
i)結構數組的定義
定義結構數組可以采用兩種方法:用指派語句定義和用函數 struct 定義。
——
指派語句 ——
用指派語句定義結構時,隻要給出結構的屬性指派,Matlab 就會自動把該屬性增加到結構中,指派時,結構名和屬性名用“.”分開。
例如,下面三條語句将定義一個1×1 的結構數組,結構名為 student,有三個屬性:name、num、test。該結構數組隻有一 個元素,在指令視窗中鍵入結構名student,将顯示該元素所有屬性的屬性值的特性。
student.name='John Doe';
student.num=123456;
student.test=[79 75 73;80 78 79;90 85 80];
再鍵入以下三行可給該結構數組增加一個元素。student(2).name='Ann Lane'; student(2).num=123422;
student(2).test=[70 76 73;80 99 79;90 85 80;80 85 86];
現在結構數組 student 的維數為1× 2 。當結構數組的元素超過 1 個時,MATLAB 的 幫助資訊中,不再顯示不同屬性的值,而隻顯示數組名、屬性名和維數大小。
——
函數 struct ——
函數 struct 也可用來定義結構數組,其調用格式為:
結構數組名=struct(‘屬性 1’,’屬性值 1’, ‘屬性 2’,’屬性值 2’,…)
ii)結構數組屬性值的修改、設定和擷取結構數組一旦形成,就可取出數組中的某個元素并修改該元素的某個屬性的值。以上面建立的 student 數組為例,指令
str=student(2).name
可取出第二個元素的 name 屬性的值。
指令
n=student(2).test(4,2)
取出第二個元素 test 的值中第四行第二列上的數。 同理,可用指令
student(2).test(4,2)=0
修改第二個元素 test 的值中第四行第二列上的數的值。
關于結構數組有如下函數:
⑧ 細胞數組
細胞數組也是 MATLAB 裡的一類特殊的數組。在 MATLAB 裡,由于有細胞數組這個資料類型,才能把不同類型、不同維數的數組組成為一個數組。
細胞數組的每一個元素可為類型不同、維數不同的矩陣、向量、标量或多元數組, 所有元素用大括号括起來。如矩陣 A=[1 2 3 4;2 3 4 5;3 4 5 6],則指令 c={A,sum(A),sum(sum(A))}得到一個1×3的細胞數組。
關于細胞數組有如下函數:
i)細胞數組的生成
▪ 有兩種方法可以生成細胞數組:用指派語句直接生成;先用 cell 函數預配置設定數組,然後再對每個元素指派。
▪ 有兩種方法可對元素指派:一種方法采用數組元素的下标指派。下面四句指令将建 立一個2× 2 的細胞數組。
A(1,1)={[1:5;6:10]};
A(1,2)={'Anne cat'};
A(2,1)={3+7i};
A(2,2)={0:pi/10:pi};
在大括号中,逗号或者空格表示每行元素之間的分割,分号表示不同行之間的分割。
另一種方法則把細胞數組的元素用大括号括起來,而所賦的值采用其它數組的形式。例如下面四句生成的細胞數組和上面所生成的完全一樣。
A{1,1}=[1:5;6:10];
A{1,2}='Anne cat';
A{2,1}=3+7i;
A{2,2}=0:pi/10:pi;
指令 B=cell(3,4)
建立一個3× 4的細胞矩陣。
ii)細胞數組内容的檢視
對于上面建立的數組 A,在 Matlab 指令視窗鍵入變量名 A,将顯示數組的簡要資訊。
函數 celldisp 用來顯示細胞數組的每個元素的值。函數 cellplot 将畫出細胞數組的每個元素的結構圖。
當給已經定義的細胞數組下标範圍外的元素指派時,Matlab 自動擴維,對于沒有指派的元素,指派為空矩陣。
• END •
▌相關推薦——
模友的Matlab筆記重磅公開!模組化小白先從這裡開始!
Matlab R2020a軟體安裝破解教程
MATLAB R2020a Mac(蘋果版本)版安裝激活教程
掃碼關注我們
2020夏令營QQ交流群
模友們可能已經發現:現在公衆号推送文章的順序,已經不會按時間排列了。這種變化,可能會讓各位模友錯過我們每天的推送。
是以,如果你還想像往常一樣,聚焦數模樂園,就需要将“數模樂園”标為星标公衆号,同時在閱讀完文章後,别忘了給一個“在看”哦。
星标步驟
(1)點選頁面最上方“數模樂園”,進入公衆号首頁
(2)點選右上角的小點點,在彈出頁面點選“設為星标”,就可以啦。
球分享
球點贊
球在看