matlab文檔查閱使用訓練(手把手教你閱讀matlab文檔)全網首發原創

本文章是爲了,熟悉閱讀matlab的幫助文檔而設立,其實更多的應該是理論知識,我讀本科的時候,剛接觸matlab發現相當難使用,也不能靜下心來看幫助文檔,總想買本書,照着敲語法,到了研1時候,也試着買了本書,發現進度緩慢,照着會,隔了一下,又不會了,問別人,別人都是說看文檔就好,我一打開文檔,wtf,都寫的個什麼東西,很多人可能怎麼看文檔都不會,也沒有這個耐心,又看了一些視頻,發現也是卵用沒有,實際上,這些東西根本記不住的,所以授人以魚不如授人以漁,掌握如何靜下心來,手把手的帶着你看matlab的幫助文檔,更有成效,然後忘記的時候再查閱文檔,把精力集中到理論的研究中,當然一定的代碼量,文檔閱讀量還是要有的,也就是說,只需要知道有這個函數,大概記得它能夠有某些功能,可能能派上用場就可以了,日後再不斷地學習別人的matlab代碼時候,再一邊學習,不斷強化。此blog後續隨着我的查閱再繼續補充。以下只是我的一邊閱讀,一邊記錄的。你可以對照着,一定要結合matlab文檔來看。手把手帶你看了兩三個函數,你就不用看我的blog了。自己放手看文檔去。

工具:
matlab 2017b
聯想i7 win10系統

1 如何離線使用matlab的幫助文檔

在這裏插入圖片描述
將下載好了的文檔,選擇爲安裝在本地
在這裏插入圖片描述

2 手把手帶你閱讀文檔的說明(所有的參考書都比不上這個幫助文檔)


linspace

可以看到我們的摘要介紹是產生線性空間向量
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
好,下面就是讀英語的水平了,y=lispace(x1,x2)可以返回一行有100個等間隔放置在x1和x2之間的元素。
關鍵詞a row,說明返回的是一行,返回了多少個?100個元素,這些元素有什麼規律?evenly spaced均勻分佈在x1和x2之間。

clc;
clear;
t=linspace(10,1000);

在這裏插入圖片描述
在這裏插入圖片描述
可以看出,我們是1×100,一行有100個元素等間隔分佈,符合預期。
下面,我們看第二句
在這裏插入圖片描述
我就不用再翻譯了,現在動手來試一試最好。

clc;
clear;
t=linspace(10,1000,10);

在這裏插入圖片描述
這裏我們自己代入公式算算,(1000-10)/(10-1)=110 和我們上圖一致的。
在這裏插入圖片描述
這段話就是說linspace類似於冒號操作符,但是linspace可以直接指定生成點的個數,其中名字來源lin來自於線性空間,和對數空間是相反的。
下面又給出了兩個例子。這裏就不用再解釋了。
在這裏插入圖片描述
下面我們來看一下複數的linspace使用

clc;
clear;
y = linspace(1+2i,10+10i,8);

在這裏插入圖片描述
可以看出我們的實數部分從1到10分成了8份,虛數部分從2到10分成了8份。
下面我們還可以看到文檔對參數的說明,下面也指明瞭參數可以輸入爲複數,
並且允許x2的值小於x1的值,這樣的化,向量的元素就是降序值。

在這裏插入圖片描述
下面是對n的說明,如果n是個0或者負數,那麼就返回空值,如果不是個整數,那麼小數點後往下取整。
在這裏插入圖片描述
並且還介紹了具有的擴展功能,可以自動生成c代碼
另外也可以參考剛纔上文提到的對數函數和冒號操作符。(非常人性化)
在這裏插入圖片描述

’ 轉置符號的使用

clc;
clear;
t=[1,2,3;4,5,6;7,8,9];
x=t';


在這裏插入圖片描述

在這裏插入圖片描述

plot函數

當我們輸入plot這個函數就相當的豐富了。我們可以看到plot用於各種類型的畫圖。這裏我們只需要畫一個二維的圖,所以我們選擇第一個。可以看到第一個的功能是2-D line plot 二維線圖,繪製一個二維線圖。

在這裏插入圖片描述
在這裏插入圖片描述
上面所示的描述,介紹了什麼呢?我們可以瞭解到有4點。
1、如果x、y都是向量,那長度要相等。
2、如果x、y都是矩陣,那麼矩陣大小要相等。
3、如果其中一個是矩陣,其中一個是向量的情況
4、如果一個是標量另一個是向量或者標量,那麼將繪製離散的點。

在這裏插入圖片描述
上圖也清晰地介紹了句法格式。搞忘時候,再來參照一下即可。
下面有兩個可能看的不是太明白,沒關係,我們到時候對照文檔裏面的例子即可。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這裏我們再次回顧上圖,驗證了上述框框裏面的話。
在這裏插入圖片描述
在這裏插入圖片描述
上圖是指定線的風格,那麼我們再來回顧一下之前的說明。
在這裏插入圖片描述
而這些風格,我們需要記憶嗎?肯定是不需要的,藍色字體已經爲我們標記出來了linespec我們可以查詢手冊。
那麼可能接下來又有問題了,我們如何得知先告訴他顏色特性過了再是線寬?還是先告訴線寬,再告訴顏色特性?這些參數的順序如何確定呢
在這裏插入圖片描述
在這裏插入圖片描述
可以看到這些參數都有對應的名字,這樣就能區分開了
下面是我自己在上述程序中的修改,我的修改依據是什麼呢?就是文檔中的介紹。

clc;
clear;
x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));

figure
plot(x,y,'LineStyle','--',...
    'color','red',...
    'Marker','d',...
    'LineWidth',2,...
    'MarkerSize',10,...
    'MarkerEdgeColor','b',...
    'MarkerFaceColor','g')

在這裏插入圖片描述
在這裏插入圖片描述
我們可以使用linespec來輸入,但是這個linespec只能夠設置顏色標記和線的風格。其它比如線寬,標記輪廓和填充並不能。所以我麼還可以用上圖的下面一種方式,名稱與值匹配的方式。
在這裏插入圖片描述
上圖是我們的所有名字參數,從第一句話,我們就知道,名字必須要單引號,值,我們可以看介紹裏面是不是打了單引號,一般說來字母類型的是要打單引號的。
其它,還可以加上座標的名字和圖畫的title,這些都不說了,文檔裏面有,需要時候,照着看即可。另外plot還可以繪製時間爲橫座標,這種可能對於金融分析的有用,但是這都不用多說了,用到時候查詢這個手冊即可。

子圖subplot

在這裏插入圖片描述
最常用的是第一個句法
在這裏插入圖片描述
第一個的句法就是subplot(m,n,p)將當前圖形劃分爲m-by-n網格,並在p指定的位置創建軸
第二個,可以替換指定的圖。
其他還說了寫參數,用到時候再查詢。

在這裏插入圖片描述
在這裏插入圖片描述
上圖是最常用的形式

subplot(2,2,1);
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);
title('Subplot 1: Cosine')

subplot(2,2,2);
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');
title('Subplot 2: Polynomial')

subplot(2,2,[3,4]);
plot(x,y_cos,'b',x,y_poly,'g');
title('Subplot 3 and 4: Both')

在這裏插入圖片描述
上圖也是很常用的形式
subplot(2,2,2,‘replace’)
在這裏插入圖片描述

pos1 = [0.1 0.3 0.3 0.3];
subplot('Position',pos1)
y = magic(4);
plot(y)
title('First Subplot')

pos2 = [0.5 0.15 0.4 0.7];
subplot('Position',pos2)
bar(y)
title('Second Subplot')

在這裏插入圖片描述
座標不對齊,這個也很常用。但是都非常簡單,這裏不再多說了,看看文檔就好。
在這裏插入圖片描述

方波函數square

同樣,我們在幫助文檔裏面搜索square
在這裏插入圖片描述
句法,我們看到有兩種寫法,從描述來看第一種句法,說了週期爲2*pi,跟sin這種波形很相似,但是產生的波形是-1和1罷了,也就是說沒有0這種值。要改變幅度也很容易,乘以個係數即可。
第二句語法,也很簡單,就是說duty是佔空比,我們可以設置佔空比,必須爲正值,這個佔空比。

t = linspace(-pi,2*pi,121);
x = 1.15*square(2*t);

plot(t/pi,x,'.-',t/pi,1.15*sin(2*t))
xlabel('t / \pi')
grid on

在這裏插入圖片描述
想必這裏plot的這種寫法,你也已經能夠看得懂了吧。

下面我們再來看一下具有佔空比設置的方波應該怎樣使用?
在這裏插入圖片描述
上面這句話是什麼意思呢?
就是說產生一個30HZ的方波採樣點在1KHZ,採樣時間爲70ms。指定方波的佔空比是37%。再加點高斯噪聲,方差爲1/100.

t = 0:1/1e3:0.07;
y = square(2*pi*30*t,37)+randn(size(t))/10;
dutycycle(y,t)%Compute the duty cycle of the wave. Plot the waveform and annotate the duty cycle.計算波的佔空比。 繪製波形並註釋佔空比。

上面可能有的人一時有點看不太懂,是這樣子的,首先,時間長度定義好了0-0.07s,採樣率是1000HZ,所以步進是1/1000s,然後y=square(2π30t,37)是什麼意思呢?由於我們的square標準的是以2π爲周,就類似於sin(2πft),我們可以改變一個週期的長度,其中這個f就是我們方波的週期,所以爲 square(2pi30*t,37)。
下面我先大概說一下randn是產生隨機數,size返回一個矩陣的n×m
另外爲什麼方差這裏是除以/10,因爲標準差是方差開根號,所以相當於產生標準差爲1/10.
在這裏插入圖片描述
根據上圖,s^2除以100,右邊也除以100帶入分子,相當於每個樣本都要除以10.

sawtooth鋸齒波函數

同樣的,我們來搜索一下這個函數。
在這裏插入圖片描述
第一句語法講了些什麼呢?就是說這個sawtooth函數可以建立以t爲時間軸、週期爲2*π,鋸齒波非常近似於sin函數,通過建立-1和1來創建峯值,鋸齒波被定義爲-1的時候,是在2π的整數倍,以1/π線性的斜率線性增加。

% Generate 10 periods of a sawtooth wave 
% with a fundamental frequency of 50 Hz. The sample rate is 1 kHz.
t=0:1/1000:10/50-1/1000;
y=sawtooth(2*pi*50*t);
plot(t,y,'red');
periodogram(y,[],length(y),1000,'power')

在這裏插入圖片描述
下面增加了最後一個periodogram畫出來的。
在這裏插入圖片描述

periodogram

在這裏插入圖片描述
單看這個函數,是週期圖功率譜密度估計
這個函數我們以後再來閱讀,先暫時擱置

randn函數

同樣,我們可以先看到介紹,這個randn函數是產生正態分佈的隨機數。
其中句法包括瞭如下的句法。
在這裏插入圖片描述
在這裏插入圖片描述描述很好看明白,這裏就不用多說了,我們看第三個描述,由於之前我們的size(t),返回的是1 71 所以randn(size(t))就返回1×71的隨機矩陣。
第四個可以指明隨機數是double還是single類型
第五個可以指明像p這個矩陣元素那樣的類型

rand函數

rand是產生長度爲N的在[0 ,1]上均勻分佈的隨機序列,
而randn是產生均值爲0,方差爲1的高斯分佈。
在這裏插入圖片描述
在這裏插入圖片描述
上圖爲均勻分佈。
另外可以看到rand的句法和randn是一樣的。這裏就不多說了,自己看文檔即可。

xlim和ylim的使用

在這裏插入圖片描述
在這裏插入圖片描述
第一個句法非常簡單,就是設置一個橫軸座標的範圍
第一個也是最常用的,後續我們要改變座標軸的長度,我們可以再來看別的

在這裏插入圖片描述

希臘字符轉義輸入

想必,經過之前的說明,有的人不知道在plot的座標軸裏面怎麼輸入這些alpha、beta這些字符。
只需要 \ +希臘字符名字 即可。比如 \pi 那麼就是π
在這裏插入圖片描述
在這裏插入圖片描述

MATLAB信號處理之信號的採樣

clc;
clear;
f=200;               %信號頻率爲200Hz
t=(0:1/1e6:1);    %定義信號的時間範圍,以高採樣率1M的速率生成模擬信號
x=cos(2*pi*f*t);     %生成模擬信號

fs=2000;              %採樣頻率爲500Hz
T=(0:1/fs:1);        %定義採樣的每個時間點
x1=cos(2*pi*f*T);    %對信號進行採樣


subplot(311);
plot(t,x);

ylim([-1 1])
title('原始信號')

subplot(312)
plot(t,x,T,x1,'rp');
ylim([-1 1]);
title('採樣過程')

subplot(313)
plot(T,x1);
ylim([-1 1])
xlabel('時間/s')
title('採樣後的信號')

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章