2013-02-12 81 views
0

我目前正在使用C#編寫的聲學分析項目。最好的方法來存儲類型爲float的大型二維數組

已經能夠正確計算用戶選擇的wav文件的功能,現在我正在進行模板匹配,這將用於識別用戶選擇的wav文件中的關鍵事件。

作爲下一步的一部分,我將閱讀wav文件,計算這些wav文件的功能,並且我將不得不存儲功能計算的結果。

由此創建的二維數組通常是大小的,例如,array[1800][30],這些值將需要保存。

我的問題是,你會建議什麼是存儲這種規模的數組的最佳方法,以便在比較用戶選擇的wav文件生成的特徵(數組)與特徵值保存的數組。

爲了與當前選擇的wav文件進行比較,我保存的數組越多,模板匹配的準確性就越高。所以有可能我有> 100大小爲array[1800][30]的數組,需要保存。

在此先感謝您的任何建議!

+0

你有沒有考慮數據庫解決方案 – 2013-02-12 20:33:18

+1

你肯定會想這樣大的文件存儲在二進制形式,可能與在包含有關該文件的元數據前某種固定大小的標頭,如文件格式版本,行數和列數等。什麼樣的級別是你的文件IO和序列化技能? – 2013-02-12 20:40:02

+0

您首先需要問自己,您將要求數據庫回答哪些問題,這些問題可能與這些1800x30浮點數的含義有很大關係 – 2013-02-12 20:41:37

回答

0

您可以使用序列化將任何對象從RAM(隨機存取存儲器)保存到硬盤。
在序列化過程中,任何可串行化的對象都可以轉換爲字節流,這個字節流可以存儲在文件或數據庫中。 反轉操作稱爲反序列化
Serialization basic concepts
.NET and Object Serialization using C#
Serialization

+0

您的前兩個鏈接會轉到同一位置。 – gunr2171 2013-02-12 21:05:48

+0

tnx。我做了一些編輯 – 2013-02-12 21:07:05

+0

感謝M.Heydari,我會給這些資源一個閱讀,這聽起來像我想要執行的操作類型。 – KingSpread 2013-02-12 21:10:27