【发布时间】: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 文件。我想为我拥有的文件集编译这个变量。
提前感谢您的帮助。
艾伦
【问题讨论】: