MATLAB入門:基本操作與矩陣運算

基本操作


把matlab當(dāng)作計算器使用

把matlab當(dāng)計算器使用基本符合常識溪烤,不過多贅述(下同甩挫,著重記錄與常識有出入的地方)。

需要注意的有:

  • =表示賦值笆包,判斷是否相等用==宵距;
  • matlab中沒有ln( )函數(shù)腊尚,log( )默認(rèn)以e為底;
  • matlab中要表示自然對數(shù)e,用exp(1)表示即可满哪;表示以e為底數(shù)的指數(shù)函數(shù)用exp(n)(e的n次方)

變量

  • 與一般語言不同婿斥,matlab對于變量可以直接使用,不需要提前聲明哨鸭;
  • matlab變量大小寫敏感民宿;
  • matlab中變量命名規(guī)則與c一致;
  • matlab已有的保留變量不適合做變量名像鸡,調(diào)用iskeyword命令查看活鹰。

課件問題:
  1. matlab大小寫敏感,大寫與小寫有區(qū)別
  2. matlab的變量不能以數(shù)字開頭
變量類型

對于matlab的變量類型可以是如下這些:



對于數(shù)值變量只估,不顯示指明變量類型志群,默認(rèn)double類型,就數(shù)模而言基本足夠蛔钙。

避免使用與函數(shù)赖舟、腳本同名的變量

若出現(xiàn)與函數(shù)同名的變量名,調(diào)用時優(yōu)先當(dāng)作變量名處理夸楣。

cos='This string.';
cos(8)                  % 對字符串進(jìn)行索引取值,得到'r'

出現(xiàn)這種情況可以使用clear變量名 清除該變量,即clear cos
便可正常使用cos( )函數(shù)子漩。

順帶一提
clear:清除workspace內(nèi)所有變量(即清空存儲區(qū))
clear <name>:清除name變量
clc:清空終端窗口(變量依然存在)


格式控制

一些常用的命令:

  • 緊湊顯示格式:format compact
  • 寬松顯示格式:format loose
  • 數(shù)據(jù)高精度顯示:format long
  • 數(shù)據(jù)低精度顯示:format short
  • 以分?jǐn)?shù)顯示:format rat

值得一提的是豫喧,無論以分?jǐn)?shù)顯示還是以小數(shù)顯示,其在matlab內(nèi)部存儲的值都是一樣的幢泼。
另外需要注意:

  1. 如果原數(shù)值是無理數(shù)紧显,顯示的分?jǐn)?shù)是在一定誤差范圍內(nèi)的有理分式近似值
  2. 可以通過R = rat(x)將小數(shù)x以分?jǐn)?shù)的形式賦值給R該分?jǐn)?shù)實際上是一個字符串缕棵,也就是說R儲存的將是一個字符串
  • 在一行命令后緊接著;孵班,使結(jié)果不顯示在終端窗口中

一點補充
who:顯示工作區(qū)內(nèi)所有的變量
whos:顯示工作區(qū)內(nèi)所有變量的詳細(xì)信息
whos <name>:顯示變量name的詳細(xì)信息



矩陣運算


矩陣的定義

區(qū)分vectormatrixvector指向量,matrix指矩陣招驴,而array則是兩者的統(tǒng)稱篙程。

,空格用來間隔列column;用來間隔行row

a = [1 2 3];        %這是一個行向量
b = [4, 5, 6];      %這也是一個行向量
c = [7; 8; 9];      %這是一個列向量

向量乘法

行向量乘列向量結(jié)果是一個數(shù)别厘,而列向量乘行向量結(jié)果是一個矩陣:

>> a=[1 4 6];
>> b=[3;4;8];
>> a*b          % 行向量乘列向量
ans =
    67
>> b*a          % 列向量乘行向量
ans =
     3    12    18
     4    16    24
     8    32    48




矩陣索引

可以有多種索引方式虱饿,普通的a(x, y) 即第x行,第y列;
a(n) 即從第一列開始依次1氮发、2渴肉、3......;如圖

比較特殊的索引:


特別注意A([1 3 5])爽冕、A([1 3; 1 3])A([1 3], [1 3])三者的區(qū)別

>> A=[1 21 6; 5 17 9; 31 2 7];
>> A([1 3 5])
ans =
     1    31    17
>> A([1 3; 1 3])
ans =
     1    31
     1    31
>> A([1 3], [1 3])
ans =
     1     6
    31     7




使用:創(chuàng)建向量

  • x = j:k 創(chuàng)建一個包含元素 [j,j+1,j+2,...,j+m] 的單位間距向量 x
  • x = j:i:k 創(chuàng)建一個j為起點仇祭,k為終點,步長為 i 的向量


str = 'a':2:'z'將給出一個字符串:'acdfh....z'賦值給str

使用:索引

使用A(3,:)索引矩陣A的整個第三行
A(3,:)=[]使矩陣A的整個第三行等于空矩陣:



矩陣串聯(lián)

兩個行數(shù)相同的矩陣可以通過,空格橫向串聯(lián)颈畸。即[A,B][A B]

注意A+B并不能實現(xiàn)矩陣串聯(lián)乌奇,而是矩陣加法

兩個列數(shù)相同的矩陣可以通過;縱向串聯(lián)F=[[A,B];C;D]實現(xiàn)下圖:



矩陣運算

  • 矩陣加減運算均為對應(yīng)元素的加減
  • 矩陣乘除運算區(qū)分.*,./*,/
    .*為對應(yīng)元素相乘承冰,而普通的*則為矩陣乘法华弓。
  • 矩陣的乘方^與矩陣乘除法類似偏形,.^為對應(yīng)元素的乘方爸舒。
  • 矩陣轉(zhuǎn)置'衔蹲,即為現(xiàn)代中的轉(zhuǎn)置促绵。
% 轉(zhuǎn)置的一點運用
>> M=rand(4)
M =
    0.8147    0.6324    0.9575    0.9572
    0.9058    0.0975    0.9649    0.4854
    0.1270    0.2785    0.1576    0.8003
    0.9134    0.5469    0.9706    0.1419
>> mean(M)
ans =
    0.6902    0.3888    0.7627    0.5962
>> mean(M')'
ans =
    0.8404
    0.6134
    0.3408
    0.6432
% 直接使用 mean( ) 函數(shù)是對每一列求平均數(shù)(下面的內(nèi)容)长酗,
% 而有時候需要對每一列求平均數(shù)漠秋,則可以將 M 轉(zhuǎn)置后求平均
% 再轉(zhuǎn)置為一列肉盹,即對應(yīng)于原來矩陣每一行的平均數(shù)俺陋。




一些特殊矩陣

  • linspace(x,y,n):線性間隔的向量百宇。從x到y(tǒng)均等的給出n個數(shù)考廉;
    linspace(x,y):從x到y(tǒng)均等的給出100個數(shù)。
  • logspace(a,b):在 10a 和10b之間生成50個對數(shù)間距點携御;
    logspace(a,b,n):在10a和10b之間生成n個對數(shù)間距點;
    注意不是均分
% logspace()不是均分
>> logspace(1,2,3)
ans =
   10.0000   31.6228  100.0000
  • eye(n):n×n單位矩陣
  • diag():對角矩陣
  • rand():均勻分布的隨機(jī)數(shù)(服從[0,1]上均勻分布)




一些矩陣相關(guān)的函數(shù)

image
  • max(A):給出每一列中最大的數(shù)
  • max(max(A)):則可給出整個矩陣最大值
% max(A):給出每一列中最大的數(shù)
>> A=[8 1 6;3 5 7;4 9 2]
A =
     8     1     6
     3     5     7
     4     9     2
>> max(A)
ans =
     8     9     7
>> max(max(A))
ans =
     9
  • 左邊一欄均類似給出每一列中xx昌粤,mean():平均數(shù)

對于右邊一欄

  • sort(A):對于每一列,從小到大排序啄刹。若只有一行涮坐,則對行從小到大排
  • sortrows(A):以行為單位(每行的數(shù)固定),按照第一列的數(shù)從小到大排
>> A=[8 1 6;3 5 7;4 9 2]
A =
     8     1     6
     3     5     7
     4     9     2
>> sort(A)          % 對每一列從小到大排序
ans =
     3     1     2
     4     5     6
     8     9     7
>> sortrows(A)      % 以行為單位誓军,按照每行第一個數(shù)的大小對行排序
ans =
     3     5     7
     4     9     2
     8     1     6
     
>> a=[4 6 2];
>> sort(a)          % 若只有一行袱讹,則sort對行從小到大排
ans =
     2     4     6
  • size(A):給出行寬和列寬
  • length(A):給出行寬(列數(shù))
>> A=rand(3,5)
A =
    0.4218    0.9595    0.8491    0.7577    0.6555
    0.9157    0.6557    0.9340    0.7431    0.1712
    0.7922    0.0357    0.6787    0.3922    0.7060
>> size(A)      %給出行寬和列寬
ans =
     3     5
>> length(A)    %給出行寬
ans =
     5
  • find(A==x):給出矩陣A中等于x的元素位置(以列的形式呈現(xiàn))
>> A=magic(3)       % 給出一個3x3的magic矩陣
A =
     8     1     6
     3     5     7
     4     9     2
>> A(3,2)=7;        % 將(3,2)位置處的元素賦值為7
>> find(A==7)       % 給出矩陣中等于7的元素位置
ans =
     6
     8

使用 strlength 而非 length 來確定字符串?dāng)?shù)組的每個元素中的字符數(shù)量。


length(str)結(jié)果為3






習(xí)題

%%
cos(sqrt((1+2+3+4)^3/5))
%sqrt( )是matlab內(nèi)置的平方根函數(shù)

%%
sin(sqrt(pi))+log(tan(1))
%matlab中沒有l(wèi)n( )函數(shù)昵时,log( )默認(rèn)以e為底

%%
2^(3.5*1.7)

%%
exp(sin(10))
%matlab中要表示自然對數(shù)e捷雕,用exp(1)表示即可;表示以e為底數(shù)的指數(shù)函數(shù)用exp(n)(e的n次方)
format rat;         %調(diào)整成分?jǐn)?shù)顯示
ans=3/13+4/14+5/15

format long;        %調(diào)整成高精度小數(shù)顯示
ans=3/13+4/14+5/15






以上內(nèi)容為個人筆記壹甥,部分圖片來源于郭老師課件或課程截圖救巷。
筆記匯總:MATLAB基礎(chǔ)教程
課程視頻:https://www.bilibili.com/video/BV1DA411Y7bN
課件下載:MATLAB教程-提取碼:7777
郭彥甫老師的YouTube主頁:@Yanfu Kuo
原視頻:https://www.youtube.com/watch?v=KHFZLkm9qs0&t=8s

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市句柠,隨后出現(xiàn)的幾起案子征绸,更是在濱河造成了極大的恐慌久橙,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件管怠,死亡現(xiàn)場離奇詭異淆衷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)渤弛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門祝拯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人她肯,你說我怎么就攤上這事佳头。” “怎么了晴氨?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵康嘉,是天一觀的道長。 經(jīng)常有香客問我籽前,道長亭珍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任枝哄,我火速辦了婚禮肄梨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挠锥。我一直安慰自己众羡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布蓖租。 她就那樣靜靜地躺著粱侣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蓖宦。 梳的紋絲不亂的頭發(fā)上甜害,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機(jī)與錄音球昨,去河邊找鬼。 笑死眨攘,一個胖子當(dāng)著我的面吹牛主慰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鲫售,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼共螺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了情竹?” 一聲冷哼從身側(cè)響起藐不,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后雏蛮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涎嚼,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年挑秉,在試婚紗的時候發(fā)現(xiàn)自己被綠了法梯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡犀概,死狀恐怖立哑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姻灶,我是刑警寧澤铛绰,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站产喉,受9級特大地震影響捂掰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜镊叁,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一尘颓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晦譬,春花似錦疤苹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至像樊,卻和暖如春尤莺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背生棍。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工颤霎, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涂滴。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓友酱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親柔纵。 傳聞我的和親對象是個殘疾皇子缔杉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355