MATLAB的M檔案、MEX檔案、MAT檔案是什麼 .如何開啟(直接滑鼠拖入相應區域)
.M檔案是儲存一段程式碼的檔案,類似於C語言中的一個函式體; 這也是MATLAB中最常見的檔案儲存格式之一
.MEX檔案是一種“可在matlab環境中呼叫的C(或fortran)語言衍生程式”。也就是說,MEX檔案的原始碼檔案是由C或Fortran語言編寫的,後經matlab編譯器處理而生成的二進位制檔案;它可以被matlab直譯器自動裝載並執行的動態連結程式,這種檔案在windows下是ddl檔案。
.mat是matlab的資料儲存的標準格式。也就是你操作產生的資料的一個集合包,可以把一次處理的結果儲存,供下一次使用。
你可以呼叫matlab的子程式庫,用c或fortan呼叫mat格式的資料。
有幾種方法可以開啟
1.matlab中可以用load命令讀取.mat檔案
load 載入
或是直接把檔案拉到命令視窗裡面
2.C語言中有API讀取.mat檔案,如matOpen, matClose等等
3.用記事本就可以開啟.mat檔案,.mat檔案格式是公開的,你可以自己解析裡面的內容
訊號的讀取;
一、 問題的提出:
數字語音是訊號的一種,我們處理數字語音訊號,也就是對一種訊號的處理,那訊號是什麼呢?
訊號是傳遞資訊的函式。離散時間訊號——序列——可以用圖形來表示。
按訊號特點的不同,訊號可表示成一個或幾個獨立變數的函式。例如,影象訊號就是空間位置(二 元變數)的亮度函式。一維變數可以是時間,也可以是其他參量,習慣上將其看成時間。訊號有以下幾種:
(1)連續時間訊號:在連續時間範圍內定義的訊號,但訊號的幅值可以是連續數值,也可以是離 散數值。當幅值為連續這一特點情況下又常稱為模擬訊號。實際上連續時間訊號與模擬訊號常常通用,用以說明同一訊號。
(2)離時間訊號:時間為離散變數的訊號,即獨立變數時間被量化了。而幅度仍是連續變化的。
(3)數字訊號:時間離散而幅度量化的訊號。
語音訊號是基於時間軸上的一維數字訊號,在這裡主要是對語音訊號進行頻域上的分析。在訊號分 析中,頻域往往包含了更多的資訊。對於頻域來說,大概有8種波形可以讓我們分析:矩形方波,鋸齒波,梯形波,臨界阻尼指數脈衝波形,三角波,餘旋波,餘旋 平方波,高斯波。對於各種波形,我們都可以用一種方法來分析,就是傅立葉變換:將時域的波形轉化到頻域來分析。
於是,本課題就從頻域的角度對訊號進行分析,並通過分析頻譜來設計出合適的濾波器。當然,這 些過程的實現都是在MATLAB軟體上進行的,MATLAB軟體在數字訊號處理上發揮了相當大的優勢。
二、 設計方案:
利用MATLAB中的wavread命令來讀入(採集)語音訊號,將它賦值給某一向量。再將 該向量看作一個普通的訊號,對其進行FFT變換實現頻譜分析,再依據實際情況對它進行濾波。對於波形圖與頻譜圖(包括濾波前後的對比圖)都可以用 MATLAB畫出。我們還可以通過sound命令來對語音訊號進行回放,以便在聽覺上來感受聲音的變化。
選擇設計此方案,是對數字訊號處理的一次實踐。在數字訊號處理的課程學習過程中,我們過多的 是理論學習,幾乎沒有進行實踐方面的運用。這個課題正好是對數字語音處理的一次有利實踐,而且語音處理也可以說是訊號處理在實際應用中很大眾化的一方面。
這個方案用到的軟體也是在數字訊號處理中非常通用的一個軟體——MATLAB軟體。所以這個 課題的設計過程也是一次數字訊號處理在MATLAB中應用的學習過程。課題用到了較多的MATLAB語句,而由於課題研究範圍所限,真正與數字訊號有關的 命令函式卻並不多。
三、 主體部分:
(一)、語音的錄入與開啟:
[y,fs,bits]=wavread('Blip',[N1 N2]);用於讀取語音,取樣值放在向量y中,fs表示取樣頻率(Hz),bits表示取樣位數。[N1 N2]表示讀取從N1點到N2點的值(若只有一個N的點則表示讀取前N點的取樣值)。
sound(x,fs,bits); 用於對聲音的回放。向量y則就代表了一個訊號(也即一個複雜的“函式表示式”)也就是說可以像處理一個訊號表示式一樣處理這個聲音訊號。
FFT的MATLAB實現
在MATLAB的訊號處理工具箱中函式FFT和IFFT用於快速傅立葉變換和逆變換。下面介 紹這些函式。
函式FFT用於序列快速傅立葉變換。
函式的一種呼叫格式為 y=fft(x)
其中,x是序列,y是序列的FFT,x可以為一向量或矩陣,若x為一向量,y是x的FFT。 且和x相同長度。若x為一矩陣,則y是對矩陣的每一列向量進行FFT。
如果x長度是2的冪次方,函式fft執行高速基-2FFT演算法;否則fft執行一種混合基的 離散傅立葉變換演算法,計算速度較慢。
函式FFT的另一種呼叫格式為 y=fft(x,N)
式中,x,y意義同前,N為正整數。
函式執行N點的FFT。若x為向量且長度小於N,則函式將x補零至長度N。若向量x的長度大 於N,則函式截短x使之長度為N。若x 為矩陣,按相同方法對x進行處理。
經函式fft求得的序列y一般是復序列,通常要求其幅值和相位。MATLAB提供求複數的幅 值和相位函式:abs,angle,這些函式一般和FFT同時使用。
函式abs(x)用於計算復向量x的幅值,函式angle(x)用於計算復向量的相角,介於 和 之間,以弧度表示。
函式unwrap(p)用於展開弧度相位角p ,當相位角絕對變化超過 時,函式把它擴充套件至 。
用MATLAB工具箱函式fft進行頻譜分析時需注意:
(1) 函式fft返回值y的資料結構對稱性
若已知序列x=[4,3,2,6,7,8,9,0],求X(k)=DFT[x(n)]。
利用函式fft計算,用MATLAB程式設計如下:
N=8;
n=0:N-1;
xn=[4 3 2 6 7 8 9 0]';
XK=fft(xn)
結果為:
XK =
39.0000
-10.7782 + 6.2929i
0 - 5.0000i
4.7782 - 7.7071i
5.0000
4.7782 + 7.7071i
0 + 5.0000i
-10.7782 - 6.2929i
由程式執行所得結果可見,X(k)和x(n)的維數相同,共有8個元素。X(k)的第一行元 素對應頻率值為0,第五行元素對應頻率值為Nyquist頻率,即標準頻率為1.因此第一行至第五行對應的標準頻率為0~1。而第五行至第八行對應的是負 頻率,其X(k)值是以Nyquist頻率為軸對稱。(注:通常表示為Nyquist頻率外擴充套件,標以正值。)
一般而言,對於N點的x(n)序列的FFT是N點的複數序列,其點n=N/2+1對應 Nyquist頻率,作頻譜分析時僅取序列X(k)的前一半,即前N/2點即可。X(k)的後一半序列和前一半序列時對稱的。
(2) 頻率計算
若N點序列x(n)(n=0,1,…,N-1)是在取樣頻率 下獲得的。它的FFT也是N點序列,即X(k)(k=0,1,2,…,N-1),則第k點所對應實際頻率值為f=k*f /N.
(3) 作FFT分析時,幅值大小與FFT選擇點數有關,但不影響分析結果。
2、設計內容:
(1)下面的一段程式是語音訊號在MATLAB中的最簡單表現,它實現了語音的讀入開啟,以 及繪出了語音訊號的波形頻譜圖。
[x,fs,bits]=wavread('ding.wav',[1024 5120]);
sound(x,fs,bits);
X=fft(x,4096);
magX=abs(X);
angX=angle(X);
subplot(221);plot(x);title('原始訊號波形');
subplot(222);plot(X); title('原始訊號頻譜');
subplot(223);plot(magX);title('原始訊號幅值');
subplot(224);plot(angX);title('原始訊號相位');
程式執行可以聽到聲音,得到的圖形為:
(2)定點分析:已知一個語音訊號,資料取樣頻率為100Hz,試分別繪製N=128點 DFT的幅頻圖和N=1024點DFT幅頻圖。
程式設計如下:
x=wavread('ding.wav');
sound(x);
fs=100;N=128;
y=fft(x,N);
magy=abs(y);
f=(0:length(y)-1)'*fs/length(y);
subplot(221);plot(f,magy);
xlabel('頻率(Hz)');ylabel('幅值');
title('N=128(a)');grid
subplot(222);plot(f(1:N/2),magy(1:N/2));
xlabel('頻率(Hz)');ylabel('幅值');
title('N=128(b)');grid
fs=100;N=1024;
y=fft(x,N);
magy=abs(y);
f=(0:length(y)-1)'*fs/length(y);
subplot(223);plot(f,magy);
xlabel('頻率(Hz)');ylabel('幅值');
title('N=1024(c)');grid
subplot(224);plot(f(1:N/2),magy(1:N/2));
xlabel('頻率(Hz)');ylabel('幅值');
title('N=1024(d)');grid
執行結果如圖:
上圖(a)、(b)為N=128點幅頻譜圖,(c)、(d)為N=1024點幅頻譜圖。由於 取樣頻率f =100Hz,故Nyquist頻率為 50Hz。(a)、(c)是0~100Hz頻譜圖,(b)、(d)是0~50Hz頻譜圖。由(a)或(c)可見,整個頻譜圖是以Nyquist頻率為軸對 稱的。因此利用fft對訊號作頻譜分析,只要考察0~Nyquist頻率(取樣頻率一半)範圍的幅頻特性。比較(a)和(c)或(b)和(d)可見,幅值 大小與fft選用點數N有關,但只要點數N足夠不影響研究結果。從上圖幅頻譜可見,訊號中包括15Hz和40Hz的正弦分量。
(3)若訊號長度T=25.6s,即抽樣後x(n)點數為 T/Ts=256,所得頻率解析度為 Hz,以此觀察資料長度N的變化對DTFT解析度的影響:
程式設計如下:
[x,fs,bits]=wavread('ding.wav');
N=256;
f=0:fs/N:fs/2-1/N;
X=fft(x);
X=abs(X);
subplot(211)
plot(f(45:60),X(45:60));grid
xlabel('Hz'),ylabel('|H(ejw)|')
%資料長度N擴大4倍後觀察訊號頻譜
N=N*4;
f=0:fs/N:fs/2-1/N;
X=fft(x);
X=abs(X);
subplot(212)
plot(f(45*4:4*60),X(4*45:4*60));grid
xlabel('Hz'),ylabel('|H(ejw)|')
結果如圖:
(三)、濾波器設計:
1、相關原理:
設計數字濾波器的任務就是尋求一個因果穩定的線性時不變系統,並使系統函式H(z)具有指定 的頻率特性。
數字濾波器從實現的網路結構或者從單位衝激響應分類,可以分成無限長單位衝激響應(IIR) 數字濾波器和有限長單位衝激響應(FIR)數字濾波器。
數字濾波器頻率響應的三個引數:
(1) 幅度平方響應:
(2) 相位響應
其中,相位響應
(3) 群時延響應
IIR數字濾波器:
IIR數字濾波器的系統函式為 的有理分數,即
IIR數字濾波器的逼近問題就是求解濾波器的係數 和 ,使得在規定的物理意義上逼近所要求的特性的問題。如果是在s平面上逼近,就得到模擬濾波器,如果是在z平面上逼近,則得到數字濾波器。
FIR數字濾波器:
設FIR的單位脈衝響應h(n)為實數,長度為N,則其z變換和頻率響應分別為
按頻域取樣定理FIR數字濾波器的傳輸函式H(z)和單位脈衝響應h(n)可由它的N個頻域 取樣值H(k)唯一確定。
MATLAB中提供了幾個函式,分別用於實現IIR濾波器和FIR濾波器。
(1)卷積函式conv
卷積函式conv的呼叫格式為 c=conv(a,b)
該格式可以計算兩向量a和b的卷積,可以直接用於對有限長訊號採用FIR濾波器的濾波。
(2)函式filter
函式filter的呼叫格式為 y=filter(b,a,x)
該格式採用數字濾波器對資料進行濾波,既可以用於IIR濾波器,也可以用於FIR濾波器。其 中向量b和a分別表示系統函式的分子、分母多項式的係數,若a=1,此時表示FIR濾波器,否則就是IIR濾波器。該函式是利用給出的向量b和a,對x中 的資料進行濾波,結果放入向量y。
(3)函式fftfilt
函式fftfilt的呼叫格式為 y=fftfilt(b,x)
該格式是利用基於FFT的重疊相加法對資料進行濾波,這種頻域濾波技術只對FIR濾波器有 效。該函式是通過向量b描述的濾波器對x資料進行濾波。
關於用butter函式求系統函式分子與分母系數的幾種形式。
[b,a]=butter(N,wc,'high'):設計N階高通濾波器,wc為它的 3dB邊緣頻率,以 為單位,故 。
[b,a]=butter(N,wc):當wc為具有兩個元素的向量wc=[w1,w2] 時,它設計2N階帶通濾波器,3dB通帶為 ,w的單位為 。
[b,a]=butter(N,wc,'stop'):若wc=[w1,w2],則它設計 2N階帶阻濾波器,3dB通帶為 ,w的單位為 。
如果在這個函式輸入變元的最後,加一個變元“s”,表示設計的是模擬濾波器。這裡不作討論。
為了設計任意的選項巴特沃斯濾波器,必須知道階數N和3dB邊緣頻率向量wc。這可以直接利 用訊號處理工具箱中的buttord函式來計算。如果已知濾波器指標 , , 和 ,則呼叫格式為
[N,wc]=buttord(wp,ws,Rp,As)
對於不同型別的濾波器,引數wp和ws有一些限制:對於低通濾波器,wp<ws;對於 高通濾波器,wp>ws;對於帶通濾波器,wp和ws分別為具有兩個元素的向量,wp=[wp1,wp2]和ws=[ws1,ws2],並且 ws1<wp1<wp2<ws2;對於帶阻濾波器wp1<ws1<ws2<wp2。
2、設計內容:
(1)濾波器示例:
在這裡為了說明如何用MATLAB來實現濾波,特舉出一個簡單的函式訊號濾波例項(對訊號 x(n)=sin( n/4)+5cos( n/2)進行濾波,訊號長度為500點),從中瞭解濾波的實現過程。程式如下:
Wn=0.2*pi;
N=5;
[b,a]=butter(N,Wn/pi);
n=0:499;
x=sin(pi*n/4)+5*cos(pi*n/2);
X=fft(x,4096);
subplot(221);plot(x);title('濾波前訊號的波形');
subplot(222);plot(X);title('濾波前訊號的頻譜');
y=filter(b,a,x);
Y=fft(y,4096);
subplot(223);plot(y);title('濾波後訊號的波形');
subplot(224);plot(Y);title('濾波後訊號的頻譜');
結果如圖:
在這裡,是採用了butter命令,設計出一個巴特沃斯低通濾波器,從頻譜圖中可以很明顯的 看出來。下面,也就是本課題的主要內容,也都是運用到了butter函式,以便容易的得到系統函式的分子與分母系數,最終以此來實現訊號的濾波。
(2)N階高通濾波器的設計(在這裡,以5階為例,其中wc為其3dB邊緣頻率,以 為單位),程式設計如下:
x=wavread('ding.wav');
sound(x);
N=5;wc=0.3;
[b,a]=butter(N,wc,'high');
X=fft(x);
subplot(321);plot(x);title('濾波前訊號的波形');
subplot(322);plot(X);title('濾波前訊號的頻譜');
y=filter(b,a,x);
Y=fft(y);
subplot(323);plot(y);title('IIR濾波後訊號的波形');
subplot(324);plot(Y);title('IIR濾波後訊號的頻譜');
z=fftfilt(b,x);
Z=fft(z);
subplot(325);plot(z);title('FIR濾波後訊號的波形');
subplot(326);plot(Z);title('FIR濾波後訊號的頻譜');
得到結果如圖:
(3)N階低通濾波器的設計(在這裡,同樣以5階為例,其中wc為其3dB邊緣頻率,以 為單位),程式設計如下:
x=wavread('ding.wav');
sound(x);
N=5;wc=0.3;
[b,a]=butter(N,wc);
X=fft(x);
subplot(321);plot(x);title('濾波前訊號的波形');
subplot(322);plot(X);title('濾波前訊號的頻譜');
y=filter(b,a,x);
Y=fft(y);
subplot(323);plot(y);title('IIR濾波後訊號的波形');
subplot(324);plot(Y);title('IIR濾波後訊號的頻譜');
z=fftfilt(b,x);
Z=fft(z);
subplot(325);plot(z);title('FIR濾波後訊號的波形');
subplot(326);plot(Z);title('FIR濾波後訊號的頻譜');
得到結果如圖:
(4)2N階帶通濾波器的設計(在這裡,以10階為例,其中wc為其3dB邊緣頻率,以 為單位,wc=[w1,w2],w1 wc w2),程式設計如下:
x=wavread('ding.wav');
sound(x);
N=5;wc=[0.3,0.6];
[b,a]=butter(N,wc);
X=fft(x);
subplot(321);plot(x);title('濾波前訊號的波形');
subplot(322);plot(X);title('濾波前訊號的頻譜');
y=filter(b,a,x);
Y=fft(y);
subplot(323);plot(y);title('IIR濾波後訊號的波形');
subplot(324);plot(Y);title('IIR濾波後訊號的頻譜');
z=fftfilt(b,x);
Z=fft(z);
subplot(325);plot(z);title('FIR濾波後訊號的波形');
subplot(326);plot(Z);title('FIR濾波後訊號的頻譜');
得到結果如圖:
(5)2N階帶阻濾波器的設計(在這裡,以10階為例,其中wc為其3dB邊緣頻率,以 為單位,wc=[w1,w2],w1 wc w2),程式設計如下:
x=wavread('ding.wav');
sound(x);
N=5;wc=[0.2,0.7];
[b,a]=butter(N,wc,'stop');
X=fft(x);
subplot(321);plot(x);title('濾波前訊號的波形');
subplot(322);plot(X);title('濾波前訊號的頻譜');
y=filter(b,a,x);
Y=fft(y);
subplot(323);plot(y);title('IIR濾波後訊號的波形');
subplot(324);plot(Y);title('IIR濾波後訊號的頻譜');
z=fftfilt(b,x);
Z=fft(z);
subplot(325);plot(z);title('FIR濾波後訊號的波形');
subplot(326);plot(Z);title('FIR濾波後訊號的頻譜');
得到結果如圖:
(6)小結:以上幾種濾波,我們都可以從訊號濾波前後的波形圖以及頻譜圖上看出變化。當然, 也可以用sound()函式來播放濾波後的語音,從聽覺上直接感受語音訊號的變化,但由於人耳聽力的限制,有些情況下我們是很難聽出異同的。
同樣,通過函式的呼叫,也可以將訊號的頻譜進行“分離觀察”,如顯出訊號的幅值或相位。下 面,通過改變系統函式的分子與分母系數比,來觀察訊號濾波前後的幅值與相位。並且使結果更加明顯,使人耳得以很容易的辨聽。
x=wavread('ding.wav');
sound(x);
b=100;a=5;
y=filter(b,a,x);
X=fft(x,4096);
subplot(221);plot(x);title('濾波前訊號的波形');
subplot(222);plot(abs(X));title('濾波前訊號的幅值 ');
Y=fft(y,4096);
subplot(223);plot(y);title('濾波後訊號的波形');
subplot(224);plot(abs(Y));title('濾波後訊號的幅值 ');
結果如圖:
>> sound(y);
可以聽到聲音明顯變得高亢了。從上面的波形與幅值(即幅頻)圖,也可看出,濾波後的幅值變成 了濾波前的20倍。
>> figure,
subplot(211);plot(angle(X));title('濾波前訊號相位 ');
subplot(212);plot(angle(Y));title('濾波後訊號相位 ');
得圖:
可以看到相位譜沒什麼變化。
(四)、介面設計:
直接用M檔案編寫GUI程式很繁瑣,而使用GUIDE設計工具可以大大提高工作效率。 GUIDE相當於一個控制面板,從中可以呼叫各種設計工具以輔助完成介面設計任務,例如控制元件的建立和佈局、控制元件屬性的編輯和選單設計等。
使用GUIDE設計GUI程式的一般步驟如下:
1. 將所需控制元件從控制元件面板拖拽到GUIDE的設計區域;
2. 利用工具條中的工具(或相應的選單和現場選單),快速完成介面佈局;
3. 設定控制元件的屬性。尤其是tag屬性,它是控制元件在程式內部的唯一標識;
4. 如果需要,開啟選單編輯器為介面新增選單或現場選單;
5. 儲存設計。GUIDE預設把GUI程式儲存為兩個同名檔案:一個是.fig檔案,用來儲存窗體佈局和所有控制元件的介面資訊;一個是.m檔案,該檔案的初始內 容是GUIDE自動產生的程式框架,其中包括了各個控制元件回撥函式的定義。該M檔案與一般的M檔案沒有本質區別,但是鑑於它的特殊性,MATALAB把這類 檔案統稱為GUI-M檔案。儲存完後GUI-M檔案自動在編輯偵錯程式中開啟以供編輯。
6. 為每個回撥函式新增程式碼以實現GUI程式的具體功能。這一步與一般函式檔案的編輯除錯過程相同。
設計過程及內容:
在MATLAB版面上,通過鍵入GUIDE彈出一個選單欄進入gui製作介面(或者在 File到new來進入gui),從而開始應用介面的製作。
該介面主要實現了以下幾個功能:
①開啟wav格式的音訊檔案,並將該音訊訊號的值讀取並賦予某一向量;
②播放音訊檔案,可以選擇性的顯示該音訊訊號的波形、頻譜、幅值以及相位;
③對音訊訊號進行IIR與FIR的5階固定濾波處理,可以選擇性的顯示濾波前後訊號的波形、 頻譜、幅值以及相位,以及播放濾波後的聲音。
介面如圖所示:
通過該介面,可以方便使用者進行語音訊號的處理。
介面主程式見附件。
(五)、校驗:
1、本設計圓滿的完成了對語音訊號的讀取與開啟,與課題的要求十分相符;
2、本設計也較好的完成了對語音訊號的頻譜分析,通過fft變換,得出了語音訊號的頻譜圖;
3、在濾波這一塊,課題主要是從巴特沃斯濾波器入手來設計濾波器,也從一方面基本實現了濾 波;
4、初略的完成了介面的設計,但也存在相當的不足,只是很勉強的達到了開啟語音檔案、顯示已 定濾波前後的波形等圖。
四、 結論:
語音訊號處理是語音學與數字訊號處理技術相結合的交叉學科,課題在這裡不討論語音學,而是將 語音當做一種特殊的訊號,即一種“複雜向量”來看待。也就是說,課題更多的還是體現了數字訊號處理技術。
從課題的中心來看,課題是希望將數字訊號處理技術應用於某一實際領域,這裡就是指對語音的處 理。作為儲存於計算機中的語音訊號,其本身就是離散化了的向量,我們只需將這些離散的量提取出來,就可以對其進行處理了。
在這裡,用到了處理數字訊號的強有力工具MATLAB,通過MATLAB裡幾個命令函式的調 用,很輕易的在實際化語音與數字訊號的理論之間搭了一座橋。
課題的特色在於它將語音看作了一個向量,於是語音數字化了,則可以完全利用數字訊號處理的知 識來解決。我們可以像給一般訊號做頻譜分析一樣,來給語音訊號做頻譜分析,也可以較容易的用數字濾波器來對語音進行濾波處理。
最後,還利用了MATLAB的另一強大功能——gui介面設計。設計出了一個簡易的使用者應用 介面,可以讓人實現介面操作。更加方便的進行語音的頻譜分析與濾波處理。
但由於知識能力有限,當中也存在相當的不足,特別體現在濾波與介面設計這一塊。對濾波的研 究,本文只是舉出了很小的一個方面,還有許多精髓都未能一一列舉。至於使用者介面的設計,由於筆者是初次接觸,也未能有特別的掌握,僅就剛學習到的一些加以 運用,於是設計的還是很粗燥。當然,這些問題與不足在今後的進一步學習中,我會一步一步的去進行解決。特別是對gui介面的設計,還有特別多的地方要
相關推薦
MATLAB的M檔案、MEX檔案、MAT檔案是什麼 .如何開啟(直接滑鼠拖入相應區域)
.M檔案是儲存一段程式碼的檔案,類似於C語言中的一個函式體; 這也是MATLAB中最常見的檔案儲存格式之一 .MEX檔案是一種“可在matlab環境中呼叫的C(或fortran)語言衍生程式”。也就是說,MEX檔案的原始碼檔案是由C或Fortran語言編寫的,後經matlab編譯器處理而生成的二進
Matlab 將一個矩陣儲存在.mat檔案中,或讀取.mat檔案
例13-3 open與load的比較。 >> clear >> A = magic(3); >> B = rand(3); >> save S
使用者不在sudoers 檔案中。此事將被報告 or (usermod:“sudo”組不存在)
有些人設定使用者為sudo使用者組裡成員也是不能使用sudo,eg: 其實這個原因很簡單,就說sudoers檔案由於某種原因寫入失敗了 自己手動寫入一下就好了,把root那行負責一下,名字改成你的使用者名稱即可 vi /etc/sudoers 再試試發現ok了 如果發現自
Ruby 開發環境安裝linux、mac,遇到的錯誤總結(使後人避免入坑)
一、linux安裝ruby時遇到的錯誤 首先講一下為什麼不寫Windows的,個人建議,最好不要用Windows環境,問題很多,需要安裝的東西更多,而且未知的錯誤多,網上不一定查的到,我也安裝過Windows的,也成功過,但是,有時執行會報錯,後來放棄了,安了個Linux的,再後來用了mac系統,
Java之多執行緒安全(屌絲版,兩大解決思路,要麼不去競爭(開闢執行緒副本)、要麼有順序的競爭資源(用鎖規定執行緒秩序))
0、多執行緒安全,如果多個執行緒操作一個變數,每次都能達到預期的結果,那麼說明當前這個類起碼是執行緒安全的,我這白話的,可能有點噁心。 1、看看牛人是怎麼說的,為什麼多執行緒併發是不安全的? 在作業系統中,執行緒是不再擁有資源的,程序是擁有資源的。而執行緒是由程序建立的
十三、神經網路梯度不穩定問題(即梯度消失 & 梯度爆炸問題)
本部落格主要內容為圖書《神經網路與深度學習》和National Taiwan University (NTU)林軒田老師的《Machine Learning》的學習筆記,因此在全文中對它們多次引用。初出茅廬,學藝不精,有不足之處還望大家不吝賜教。
二維陣列、影象的傅立葉變換(附加反變換與濾波演算法)
FFT演算法原理就不解釋了,可以搜尋一下百度即可。 在二維變換中,需要對矩陣進行一行一行,一列一列的FFT變換,具體公式為: F(u,v)=sum(i=0->M-1)sum(j=0->N-1)f(i, j) * exp(-j2πui/M-j*2π
五、Android安全機制之反編譯(你也可以擁有iPhone X)
Android應用的反編譯需要了解smali,熟練使用常用的反編譯工具。比如apktool,Jd-jui,dex2jar,Android逆向助手,AXMLPrinter2,jadx,Xposed,IDA,APK改之理,AndroidKiller以及一些adb、aapt
300+篇運維、資料庫等實戰資料免費下載(文章+PDF+視訊,持續更新)
2017年已過去一半,在此小編為大家精心整理了2017上半年熱點事件解析、實戰技術資料以及特別策劃短視訊系列,希望可以幫助大家更深入地回顧上半年的技術熱點,並儲備更充足的技術乾糧繼續2017的下一半。 PART 1 峰會回顧資料 餓了麼Redis Cluste
python3 讀取txt、csv、mat檔案資料並存入array具體實現
1、讀取txt檔案 下面的程式碼中需要設定你讀取資料的陣列的維度資訊,如下 datamat = np.zeros((rows, 6)) #表示6列資料 # -*- coding: cp936 -*- import re import linecache import nump
matlab讀取、顯示.mat檔案
.mat檔案在windows裡會自動預設為microsoft的一種檔案格式,讓人捉急啊。這明明是matlab的一種常見的檔案型別呢! 基本步驟: 1)開啟matlab,用load指令把檔案讀取進來,例如: load D:\XXX.mat 2)可以直接輸入檔名,來檢視檔案的格
nginx、thinkphp3.2、linux配置檔案配置
nginx.conf配置檔案: server { listen 9001; server_name 127
Python檔案&IO處理技巧(1): 讀寫、重定向、間隔符、路徑、存在性與檔案列表
1. 文字資料的讀寫 open() & write() : rt模式的重新整理模式 當我們需要讀寫各種不同編碼的文字資料(如ASCII,UTF-8或UTF-16編碼等), 可以直接使用帶rt模式的open()內建函式。如果需要將文字內容寫入到一個檔案中,就要使用帶有 w
開啟運維之路之第 3 篇——目錄作用介紹、檔案搜尋、其它命令、解壓縮包、使用者管理
1、目錄作用介紹 我們先切換到系統根目錄 / 看看根目錄下有哪些目錄 [[email protected] ~]# cd / [[email protected] /]# ls 說明: 根目錄下的bin和sbin,usr目錄下的bin和sbin,這四
linux下檔案的建立時間、訪問時間、修改時間和改變時間
Linux系統中沒有命令可以確切的檢視一個檔案的生成時間,但是可以知道訪問時間,修改時間,改變時間。 可以通過stat命令檢視一個檔案的訪問時間,修改時間,改變時間: 以下為三個時間的區別: 1、訪問時間(accesstime):讀取一次檔案的內容,該時間
MyBatis逆向工程,自動生成dao、實體類、mapper檔案
利用mybatis generator 自動生成生成dao、實體類、mapper檔案 這裡介紹兩種方法: 1、獨立的資料夾的方式,脫離開發工具 2、基於開發工具的方式(Eclipse) 1、獨立的資料夾的方式,脫離開發工具
第二篇 Python資料型別、字元編碼、檔案處理
一、引子 1、什麼是資料? x=10,10是我們要儲存的資料 2、為何資料要分不同的型別
Properties檔案工具類的使用--獲取所有的鍵值、刪除鍵、更新鍵等操作
有時候我們希望處理properties檔案,properties檔案是鍵值對的檔案形式,我們可以藉助Properties類操作。 工具類如下:(程式碼中日誌採用了slf4j日誌) package cn.xm.exam.utils; import java.io.File; i
PE檔案結構解析 C、C++程式 vc2008編譯
//MyPeFile.h------------------------------------------------------------------------------------------------------ typedef unsigned short USHORT;typ
Python:檔案批量建立、讀寫、複製、內容修改和重新命名
需求:一個郵件檔案對應一個CSV檔案,對大量的郵件檔案重新命名,然後把此檔案移動到對應的CSV檔案目錄下,檢查CSV檔案中郵件名稱內容與格式的正確性,不正確的做出修改,正確的保留。資料夾中最後是一個(視訊、郵件等)檔案對應一個CSV檔案。 1.建立並寫入CSV檔案