【问题标题】:Extracting data and do calculation from multiple CSV file and compile the calculation values into one file从多个 CSV 文件中提取数据并进行计算,并将计算值编译到一个文件中
【发布时间】:2014-07-17 04:03:18
【问题描述】:

我编写了一个代码,用于从单个 csv 文件中提取数据并执行一组计算以输出 1 个结果。我想要做的是我希望能够在一组 20 个 csv 原始数据文件上运行这个文件,执行计算以获取每个文件的结果并将所有这些结果编译成一个矩阵。

例如,最后,我将有一个 20 x 1 的矩阵,每一行代表 20 个 csv 原始文件的每个 csv 文件的结果。

这是迄今为止单个文件的 matlab 代码。

filename = 'some_file.csv'
delimiter = ',';
startRow = 19;
formatSpec = '%*s%*s%f%f%[^\n\r]';
fileID = fopen(filename,'r');
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'EmptyValue'      ,NaN,'HeaderLines' ,startRow-1, 'ReturnOnError', false);
fclose(fileID);

% extracted data into variable time and v

time = dataArray{:, 1};
v = dataArray{:, 2};

clearvars filename delimiter startRow formatSpec fileID dataArray ans;

% Start of calculation

I = v.*2000; % sensitivity 0.5mA/V
I_2 = I.^2;
current_parameter = trapz(time,I_2);

% Parameters, would like to set this up as input with 4 variable
h = 25; 
w = 5;  
t = 2;  
L_prime = 0.794193406;

%Results
Ibit(1) = 0.5*current_parameter*L_prime

end

我想要的是我想在循环中运行这些文件并作为函数调用,我可以在其中为每组 csv 文件输入特定参数(4 个变量)。结果是 Ibit,其中 1 Ibit 对应于 1 个 csv 文件。我想为我拥有的文件集编译这个变量。

提前感谢您的帮助。

艾伦

【问题讨论】:

    标签: matlab csv


    【解决方案1】:

    试试这个代码:

    list=dir('home/Desktop/csv_folder/*.csv'); % gives a structure with all .csv files info
    ibit=zeros(size(list));
    for i=1:length(list)
    filename=list(i).name;
    ibit(i)=csv_operation(filename,h(i),w(i),t(i),L_prime(i)); % where h,w,t,L_prime are vectors with input
                                                   % parameters in order for the filelist
    
    end
    

    【讨论】:

    • @AKSG,如果这解决了您的问题,单击答案左侧的勾号是表示感谢的好方法 =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 2023-03-12
    • 2021-04-05
    • 2022-10-23
    • 2022-01-06
    相关资源
    最近更新 更多