1、用audioread('');函數讀取電腦中的音訊文件,參數是音訊檔案的路徑:
[sampledata,FS] = audioread('F:1.mp3');
sampledata保存音訊訊號數據,FS是音訊取樣率,MP3格式的取樣率一般為44100;
判斷音訊資料是否為雙聲道,如是雙聲道則保留一個聲道的數據,可使用calsample.m檔案的函數實作。文件內容如下:
function sample = calsample(sampledata,FS)
temp_sample = resample(sampledata,1,FS/11025);
[m,n] = size(temp_sample);
if (n == 2)
sample = temp_sample(:,1);
else
sample = temp_sample;
end
end
A. 使用簡單的 UPDATE
下列範例說明如果從 UPDATE 語句中移除 WHERE 子句,所有的行會受到什麼影響。
下面這個例子說明,如果表 publishers 中的所有出版社將總部搬遷到喬治亞州的亞特蘭大市,表 publishers 如何更新。
UPDATE publishers
SET city = 'Atlanta', state = 'GA'
本範例將所有出版商的名字變成 NULL。
UPDATE publishers
SET pub_name = NULL
也可以在更新中使用計算值。本範例將表 titles 中的所有價格加倍。
UPDATE titles
SET price = price * 2
B.把 WHERE 子句和 UPDATE 語句一起使用
WHERE 子句指定要更新的行例如,在下面這個虛構的事件中,北加州更名為 Pacifica(縮寫為 PC),而奧克蘭的市民投票決定將其城市的名字改為 Bay City。這個例子說明如何為奧克蘭市以前的所有居民(他們的地址已經過時)更新表 authors。
UPDATE authors
SET state = 'PC', city = 'Bay City'
WHERE state = 'CA' AND city = 'Oakland'
必須寫另一個語句來更改北加州其它城市的居民所在的州名。
C.透過 UPDATE 語句使用來自另一個表格的資訊
本範例修改表格 titles 中的 ytd_sales 資料列,以反映表格 sales 中的最新銷售記錄。
UPDATE titles
SET ytd_sales = titles.ytd_sales sales.qty
FROM titles, sales
WHERE titles.title_id = sales.title_id
AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
這個例子假定,一種特定的商品在特定的日期只記錄一批銷售量,而且更新是最新的。如果不是這樣(即如果特定的商品在同一天可以記錄不只一批銷售量),這裡所示的例子將會出錯。例子可正確執行,但是每種商品只用一批銷售量進行更新,而不管那一天實際銷售了多少批。這是因為一個 UPDATE 語句從不會對同一行更新兩次。
對於特定的商品在同一天可銷售不只一批的情況,每種商品的所有銷售量必須在 UPDATE 語句中合計在一起,如下例所示:
UPDATE titles
SET ytd_sales =
(SELECT SUM(qty)
FROM sales
WHERE sales.title_id = titles.title_id
AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
FROM titles, sales
D. 將 UPDATE 語句與 SELECT 語句中的 TOP 子句一起使用
這個例子是對來自表 authors 的前十個作者的 state 欄位進行更新。
UPDATE authors
SET state = 'ZZ'
FROM (SELECT TOP 10 * FROM authors ORDER BY au_lname) AS t1
WHERE authors.au_id = t1.au_id
#你可以直接在m檔裡面用xlswrite函數:(filename/sheet/range都是要加單引號滴)
xlswrite(filename, M);將矩陣M的資料寫入名為filename的Excel檔案中。
xlswrite(filename, M, sheet);將矩陣M的資料寫入檔案名稱中的指定的sheet中。
xlswrite(filename, M, range);將矩陣M中的資料寫入檔案名稱為filename的Excel檔案中,且由range制定儲存的區域,例如'C1:C2'.
xlswrite(filename, M, sheet, range) ;在上一條指令的基礎上指定了所要儲存的sheet。
status = xlswrite(filename, ...) ;傳回完成狀態值。如果寫入成功,則status為1;反之寫入失敗,則status為0.
[status, message] = xlswrite(filename, ...);傳回因寫入作業而產生的任何錯誤或警告訊息
應用範例
例一:將資料寫入預設的工作表中
將一七元素向量寫入testdata.xls中。預設格式下,資料將寫入檔案中第一個工作表的A1至G1儲存格。 xlswrite('testdata.xls', [12.7 5.02 -98 63.9 0 -.2 56])
例二:將混合資料寫入製定工作表中
d = {'Time', 'Temp'; 12 98; 13 99; 14 97};
s = xlswrite('tempdata.xls', d, 'Temperatures', 'E1')
以上是使用MATLAB擷取語音資料庫的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!