2013-11-22 47 views
1

我有一個CSV這樣的(一行):掃描CSV變量

101, 120, 130 

我怎麼可以掃描到這些變量是這樣的:

pt_num = 101 
x = 120 
y = 130 

回答

2

只需使用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',','); 
+0

感謝您的答覆。我來自C,並希望有這樣的事情:fscanf(文件,「%d%lf%lf」,&pt_num,&x,&y)。我將擴大到更大的矩陣。任何其他可能性? – Ben

+0

@Ben這將適用於任何數量的行。注意'M(:,1)'中的冒號語法,它獲取第一列中的所有值。然而,如果你想要走這條路線,那麼在MATLAB中有一個'fscanf',這樣做更簡單。 – chappjc