繁体   English   中英

在Julia中将文件读入1d数组

[英]Reading a file into a 1d array in Julia

我有一个非常简单的文本文件只是数字看起来像0 1.57 3.14这个例子有3个数字,但数量很好。 我正在尝试将这些读入一个Float 64的1d数组,所以我尝试了以下内容。

function read_x_data(fname)
  f=open(fname)
  xarr=readdlm(f, Float64)
  print(xarr)
  xarr=sortperm(xarr)   
end

但是,我得到的错误是sortperm没有匹配方法sortperm(:: Array {Float64,2})。 我不明白为什么会这样 - 我怎样才能将我的数据读入1d数组呢? 在朱莉娅一行一行地看到了类似的问题,但我相信使用n次这样的效率是非常低效的,对吧? 任何有关我的问题或建议的帮助非常感谢。 谢谢!

要回答你的直接问题: vec会将任何数组重塑为1d向量。

sortperm返回排列但不返回原始数据; 因此,即使您添加了vec(xarr) ,您的示例也会丢弃数据。 你可能想要sort

最后,朱莉娅push! 效率不高。 您可能期望从另一种语言(Matlab?)的经验中效率低下,但在Julia中,您可以有效地增长1d数组。

如果您打算对数据进行排序,这可能对您有用。

read_x_data(fname) = sort!(vec(readdlm(fname,Float64)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM