加快PLY文件读取

时间:2015-10-31 12:04:40

标签: performance matlab matrix text

目前我在MATLAB中使用以下代码段将PLY读入MATLAB矩阵。 Here is a sample PLY file。但是,当PLY文件的大小非常大时,需要相当长的时间。

有没有更好的方法在MATLAB中有效地读取文本文件?

data = textread(fileName, '%s','delimiter', '\n');
data = data(15:length(data),1);
data = (cellfun(@(x) strread(x,'%s','delimiter',' '), data, 'UniformOutput', false));

(此问题是我之前提出的here问题的一部分。)

1 个答案:

答案 0 :(得分:1)

您可以使用dlmread功能并利用其指定起始位置的能力

>> data = dlmread(filename, ' ', 14, 0)
data =

    0.1054   -0.2731    0.8550  220.0000  195.0000  173.0000  255.0000         0
    0.1008   -0.2754    0.8550  228.0000  202.0000  184.0000  255.0000         0
    ...
    0.1139   -0.2803    0.8490  221.0000  194.0000  172.0000  255.0000         0
    0.1117   -0.2829    0.8500  225.0000  200.0000  178.0000  255.0000         0

最后两个参数指定数据的起始行和列。最终的零出现是因为测试文件中的每一行都以空格结尾。我们可以用

删除它们
>> data = data(:, 1:end-1);

dlmread函数读取数字数据,无需在previous answer中从string转换为double