目前我在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问题的一部分。)
答案 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
。