所以基本上,我在一个文本文件中有数据,如下所示:
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) 函数。我也希望能够将其他值存储在行中。
尝试使用 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
如果您只需要这样做一次,并且您正在使用带有 GUI 的 matlab,那么您可以只使用 File->import data ,这对于表格格式非常聪明。
但如果您需要重复执行此操作,或者将其作为程序的一部分,则调用命令行版本 importdata。