2016-04-22 34 views
1

readdlm返回Array{Any, 2},有兩個維度。我正在閱讀的文件包含一維列表,每行一個項目。有沒有辦法強制readdlm返回Array{Any, 1}(用適當的類型替換Any)?或者也許這有一個不同的功能?從Julia的文件中讀取一個列表(Array {Any,1})?

+1

剛剛用'vec()'包裝調用有什麼問題?即'vec(readdlm(filePath,delim,OutputType))' –

+0

@ColinTBowers是否會創建數組的新副本? – becko

+0

不確定。我不擅長解釋'@ code_llvm'的輸出。你可以嘗試'@code_llvm randn(100,1)',並將它與'@code_llvm vec(randn(100,1))'比較 - 你可能比我更擅長這種東西。我可以用一定的信心說,除非在奇怪的邊緣情況下,你很可能不會注意到任何性能差異。 –

回答

2

readlines功能將讀取文件的所有行:

readlines("filename") 

要知道,這留下換行,你可能不希望,並返回字符串而非自動推斷類型。您可能想要解析數據:

map(x -> parse(Float64, x), readlines("filename")) 

用所需類型替換Float64

+1

'readlines(「filename」)'如果每行有一個條目 - 沒有換行符的問題char – muon

+0

事實上,在最新版本中默認已更改爲'chomp = true'。在寫這個答案時,保留了新行。 –