LuoBeiCe 記錄自學LabVIEW遇到的各種問題
問題:在LabVIEW中將一個二維數組保存至dat文件,然后在matlab里面讀取。
一:LabVIEW保存數組至dat文件
描述:上半部分產生一個10X10的隨機二維數組。
“打開文件”函數的輸入參數有三個。分別為:1.文件保存路徑。2.“creat”:創建新文件,如果文件已存在,則報錯。3.“write-only”,只對文件進行寫的操作。
"寫入二進制文件"函數輸入參數有:1.要保存的二維數組。2.文件保存路徑。3.錯誤簇。4.“little-endian"。這個參數最好選擇這個,不要使用默認的參數。
”關閉文件“函數。
運行程序,前面板顯示如下:
而且對應文件夾里也多了一個”測試5,dat“的文件。
二:接下來使用Matlab讀取這個文件。
Matlab的代碼如下:
描述:”fopen":打開dat文件。
L,H:是我事先存好的二維數組的大小。
“fread”:讀取dat文件里面的數據。注意:前面我提到LabVIEW寫入二進制文件其中一個輸入參數為“little-endian”,就是因為
Matlab讀取二進制文件默認采取的就是“little-endian"模式,這個方面兩者一定要配合好,否則可能會有問題。因為二維數
組是double類型,所以這里也要指明。
B = A(2:(L*H+1)):這個地方很重要。Matlab讀取的結果會比存的數組多一位(4.12前來解釋,這是因為LabVIEW保存二進制文件時
會專門保存數組的大小信息),並排成一列。比如我之前存的為10X10的二維數組。
Matlab讀出來就是101X1個,多出來第一位為0。因此我們需要取第二位及后面的。
”reshape“:把讀出來的數據重新排序。最終的數組就儲存在變量C里面。
運行結果如圖:
任務就完成了。