【发布时间】:2013-11-22 20:44:11
【问题描述】:
我有一个这样的 CSV(一行):
101, 120, 130
我怎样才能将这些扫描成这样的变量:
pt_num = 101
x = 120
y = 130
【问题讨论】:
我有一个这样的 CSV(一行):
101, 120, 130
我怎样才能将这些扫描成这样的变量:
pt_num = 101
x = 120
y = 130
【问题讨论】:
只需使用csvread:
M = csvread('filename.csv');
pt_num = M(:,1);
x = M(:,2);
y = M(:,3);
您还可以使用textscan 获取元胞数组中的每一列:
fid = fopen('filename.csv','r');
C = textscan(fid,'%d, %n, %n');
fclose(fid);
还有fscanf,但你将不得不重塑数组:
fid = fopen('filename.csv','r');
M = fscanf(fid,'%d, %f, %f')
fclose(fid);
M = reshape(M,3,[])';
最后是dlmread,它的工作原理和csvread一样:
M = dlmread('filename.csv',',');
【讨论】:
M(:,1) 中的冒号语法,它获取第一列中的所有值。但是,如果你想走那条路,MATLAB 中有一个fscanf,这更容易。