我想在包含一些字符串但主要是数字的文本文件中读取。我希望能够忽略字符串,只看数字。我想在3D平面上绘制这些值。数据如下所示:
Tech4:<152.266724,173.189377,27.995975>
<117.880638,156.116531,27.999983>
<129.849899,59.195660,27.999983>
<249.321121,60.605404,27.999983>
<224.120361,139.072739,28.000668>
<171.188950,143.490921,56.933430>
<171.188950,143.490921,83.548088>
<171.188950,143.490921,27.999985>
我相信阅读文件只是:
File = textread('testFile.txt');
我怎样才能查看这些值然后绘制它。
谢谢!
答案 0 :(得分:1)
fid = fopen([pathname,filename]);
tline = fgetl(fid);
CX = [];
CY = [];
CZ = [];
while ischar(tline)
% skip < and >
tline = substr(tline, 1, length(tline)-2)
% extract numbers
temp = textscan(tline,'%n%n%n', 'delimiter',',');
CX(end+1,:) = [temp(1)];
CY(end+1,:) = [temp(2)];
CZ(end+1,:) = [temp(3)];
tline = fgetl(fid);
end
fclose(fid);
然后用它绘制它 plot3(CX,CY,CZ)
函数调用。
在开头添加“Tech4:”检查但是......
答案 1 :(得分:1)
我认为你也可以直接在一行中使用textscan:
fid = fopen('testFile.txt');
data = textscan(fid,'%* s%f,%f,%f');
FCLOSE(FID);
这会将具有指定格式的所有行的值加载到变量data
中。
没有matlab可以测试它。
fscanf是与文本扫描相同类型参数的选项。
编辑:错字,你想要检测浮点数(%f),当然不是整数(%d)
EDIT2 :得到了matlab并对其进行了测试,这适用于您的示例输入^^
fid = fopen('testFile.txt');
data = textscan(fid,'%*s%f%f%f','Delimiter',',<>')
fclose(fid);