1. 程式人生 > >matlab中double、char和cell的互轉

matlab中double、char和cell的互轉

小魚這兩天被導師嫌棄,說一個txt文件轉換為mat格式都花了半天時間,不就一個save函式的事嗎。哎,對會的人來說可能真的是一個函式的事,但是對於我這種對matlab不熟的初學者,真的不是那麼簡單,其中涉及各種轉換,比如double,char,cell的互轉。
比如我有一個txt文件是這樣子的:
這裡寫圖片描述
我要的資訊是該txt文件的第4-7這四列
首先我們要讀入txt文件,讀入txt文件的函式為:A=importdata(filename.txt),讀入之後才可以對文件進行處理,讀入之後一般會有data和textdata兩個欄位,你需要那個就直接A.data或A.textdata獲取。
獲取完之後就存在這轉換問題了,比如我們最終要的格式為:
這裡寫圖片描述


可以看出有些事char字元型,有的是矩陣型
所以接下來就是轉換問題,前提是要弄清楚你要的是什麼型別,有的是什麼型別
1、cell2mat:將cell轉換為mat的char型
2、str2num:將mat從char轉換為double型
3、cellstr:將char轉cell
4、num2str:將double轉char
5、num2cell:將double直接轉cell

比如:

files = dir( ['\*.txt']);
name = files.name;
A = importdata(name);
info = A.textdata;
B(1).objects(1).bbox(:,1)=str2num(cell2mat(info(j,4)));         B(1).objects(1).bbox(:,2)=str2num(cell2mat(info(j,5)));

就可以獲取txt文件中第4列和第5列的資料存入一個B的struct中。
這部分如果有什麼問題需要小魚解答的,可以留下評論,小魚會的話一定幫忙解決哦