【问题标题】:Scan CSV to variables将 CSV 扫描到变量
【发布时间】:2013-11-22 20:44:11
【问题描述】:

我有一个这样的 CSV(一行):

101, 120, 130

我怎样才能将这些扫描成这样的变量:

pt_num = 101
x = 120
y = 130

【问题讨论】:

    标签: matlab variables csv


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。我来自 C,希望有这样的东西:fscanf (file, "%d %lf %lf", &pt_num, &x, &y)。我将扩大到更大的矩阵。还有其他可能吗?
    • @Ben 这适用于任意数量的行。请注意M(:,1) 中的冒号语法,它获取第一列中的所有值。但是,如果你想走那条路,MATLAB 中有一个fscanf,这更容易。
    猜你喜欢
    • 2020-03-06
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2018-11-26
    • 2016-04-22
    • 1970-01-01
    • 2015-08-22
    相关资源
    最近更新 更多