2014-07-14 33 views
0

我想在.dat文件繪製的每一個值與數據利用Matlab如下:數據裝載到多個陣列

100 20 30 40 70 
200 32 122 45 483 

200 388 93 344 23 222 
234 23 122 
123 984 344 34 

213 12 43 9 
23 

對於每一行,數據由" "(2空格)分離出作爲分隔符。一個空行(應該是另一種分隔符)將數據分成不同的數組。因此,我想在一張圖中繪製三個數組:圖1中數組1具有「紅點」的兩行;數組2具有3行「藍點」,數組3具有2行「綠點」。

如何編程將文件數據加載到三個數組(或矩陣)中,然後繪製它們?

編輯: 順便說一句,每行中的項目數可能會有所不同。如何用「0」填充短行以使所有行具有相同的長度?

回答

0

this

strsplit(str,delimiter) 

到陣列分成不同的變量,你可以做這樣的事情:

# Where OriginalInputData is a string containing the whole .dat file. 
InputData = strsplit(OriginalInputData, /n/n) #Cell array of strings 
PreArray1 = strsplit(InputData(1), /n) 
Array1(1,:) = strsplit(PreArray1(1), " ") 
Array1(2,:) = strsplit(PreArray1(2), " ") 
#Plot Array1 

應用此相同的邏輯到其他的陣列。它也將用「0」填充「空單元格」。

+0

謝謝!然而,當我運行'InputData = strsplit(text,'\ n \ n');'其中text是包含整個文件的字符串時,我得到錯誤:「使用strsplit時出錯(第81行)首先輸入必須是一個字符串「。這是什麼意思,以及如何避免它? – user3207822

+0

@ user3207822這意味着「文本」是**而不是**字符串。嘗試在邀請命令中輸入'whos'並告訴我們「文本」是什麼。 – Sifu

+0

我得到錯誤:「錯誤使用whos參數必須包含一個字符串」。這是否意味着'text'不是一個字符串?我通過使用'text = fileread(filename)獲得'text';'當我試圖顯示'text'時,它看起來很好。 matlab是否將字符串轉換爲其他格式,因爲'text'格式爲'%d%d ....' – user3207822