读取文本文件并以3D方式绘制

时间:2012-05-22 18:33:59

标签: matlab 3d

我想在包含一些字符串但主要是数字的文本文件中读取。我希望能够忽略字符串,只看数字。我想在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');

我怎样才能查看这些值然后绘制它。

谢谢!

2 个答案:

答案 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);
相关问题