0

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

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

谢谢!

4

2 回答 2

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:”的检查......

于 2012-05-22T18:46:31.267 回答
1

我认为您也可以直接在单行中使用textscan

fid = fopen('testFile.txt');
data = textscan(fid,'%*s%f,%f,%f');
fclose(fid);

这会将具有指定格式的所有行中的值加载到变量data中。虽然没有matlab来测试它。

fscanf是一个选项,与 textscan 相同类型的参数。

编辑:错字,您当然要检测浮点数(%f),而不是整数(%d)

EDIT2:得到matlab并对其进行测试,这适用于您的示例输入^^

fid = fopen('testFile.txt');
data = textscan(fid,'%*s%f%f%f','Delimiter',',<>')
fclose(fid);
于 2012-05-22T19:36:15.563 回答