0

所以基本上,我在一个文本文件中有数据,如下所示:

100 5 10 20 someval someval
200 6 20 12 someval someval
300 7 30 13 someval someval

前 3 个标记将用作 (x, y, z) 坐标,而第四个数字将用于创建颜色以使用 surf(x,y,x,c) 函数。我也希望能够将其他值存储在行中。

4

2 回答 2

2

尝试使用 TEXTSCAN 功能:

fid = fopen('file.txt','rt');
A = textscan(fid, '%f %f %f %d %s %s', 'Delimiter',' ');
fclose(fid);

XYZ = [A{1:3}]
clr = A{4}
valsStr = [A{5:6}]

结果:

XYZ =
   100     5    10
   200     6    20
   300     7    30
clr =
          20
          12
          13
valsStr = 
    'someval'    'someval'
    'someval'    'someval'
    'someval'    'someval'

在哪里

>> whos XYZ clr valsStr
  Name         Size            Bytes  Class     Attributes

  XYZ          3x3                72  double              
  clr          3x1                12  int32               
  valsStr      3x2               444  cell                
于 2011-10-15T20:59:09.593 回答
1

如果您只需要这样做一次,并且您正在使用带有 GUI 的 matlab,那么您可以只使用 File->import data ,这对于表格格式非常聪明。

但如果您需要重复执行此操作,或者将其作为程序的一部分,则调用命令行版本 importdata。

于 2011-10-16T08:43:03.917 回答