如果我弄错了,请提前道歉.这是我在这里发表的第一篇文章(我相信会有很多人关注).
我有一个文件,我想加载到Octave但它不起作用.它是纯文本文件(.txt).该文件是同类的,从它的几行的摘录看起来像这样:
0023,225.935,341.770,17.658
0024,225.935,341.758,17.782
LTAX17,228.152,353.935,17.665
LTAX24,288.304,332.878,24.074
Run Code Online (Sandbox Code Playgroud)
其中第一列描述了点的名称,而其余列表示其3D坐标.
我试过的一些选项(但不限于这些)都没有成功.
x=load(text.txt)
error: scalar cannot be indexed with .
error: evaluating argument list element number 1
x=load("-text", "text.txt")
warning: load: file found in load path
error: load: empty name keyword or no data found in file 'text.txt'
x=fileread(text.txt)
warning: load: file found in load path
error: load: empty name keyword or no data found in file 'text.txt'
Run Code Online (Sandbox Code Playgroud)
我也试过简化文件,只留下坐标并将文件视为CSV,但我一直遇到类似的错误.
我正在使用 Octave 中的大型点云数据(从 [10^5 到 10^7, 4] 元素的不同文件),并且我正在寻找优化代码的方法。
现在我正在尝试将数据保存到 .mat 文件中,因为我在某处读到(需要确认),从 .mat 文件加载比每次加载实际的 data.txt 文件要快得多。
save -ascii myfile data工作正常,因为我想存储的只是数值,但是
load('myfile.mat')调出一个包含所有值的 1x1 矩阵,而不是一个 nx4 矩阵,这很奇怪,因为当我使用时,load('data.txt')我得到一个完整的 nx4 矩阵。
问题似乎出在save语法上。有什么方法可以保存文件,以便可以以其原始尺寸加载它?或者我是否必须以某种方式操纵生成的 1x1 变量?
额外问题:
浏览一些答案后,我有点感觉使用转置矩阵而不是 nx4 会大大提高运行时间。真的吗?