【问题标题】:How to read specify columns from file in GNU OCTAVE?如何从 GNU OCTAVE 中的文件中读取指定列?
【发布时间】:2026-01-16 00:35:01
【问题描述】:

在 GNU OCTAVE 中, 我有这样的输入文件,我必须只读取第一列和第二列并存储到变量中。 .这只是我文件的一小部分。如果是这样,我无法读取整个文件并剪切我需要的列。我应该只阅读我需要的内容,以节省记忆。

1 2 1 1015887601
1 3 1 1015887601
1 4 1 1015887601
1 5 1 1015887601
1 6 1 1015887601
1 7 1 1015887601
1 8 1 1015887601
1 9 1 1015887601
2 10 1 1015887601
2 11 1 1015887601
2 12 1 1015887601
3 13 1 1015887601
3 14 1 1015887601

【问题讨论】:

    标签: matlab file-io octave


    【解决方案1】:

    查看dlmread。 Octave 有same function,它似乎可以满足您的需求。

    类似:

    dlmread('yourfile.txt', ' ', 'A1..Bn') % replace n with the size of the file
    

    【讨论】:

    • 或者您可以使用可能更合适的range 参数。 M = dlmread(filename, delimiter, range)
    • 为什么不将链接添加到 Octave 的 dlmread() 而不是 Matlab 的?
    • @Pokey McPokerson 如何获取文件大小来替换 n
    • 您好 kkuilla,我使用了 Matlab 链接,因为它非常具有描述性并且有很好的示例。据我所知,这些功能的工作方式完全相同。
    • Tneykov,您的数据似乎相当可预测?您可以继续读取块,直到遇到 0。或者如果您期望 0,您可以将“空值”字段设置为 -1(请参阅更新答案中的 Octave 函数链接)。