我想计算I> 0和V <0.4时曲线下的积分面积,我不能用trapz函数来做到这一点,请帮忙!
我尝试了积分和陷阱函数,但没有用!我无法附加该文本文件,因此,如果您需要调试该文本文件,请告诉我该怎么做。
close all
clear all
clc
c=Constants;
F = dir('*.txt');
nF = length(F) ;
count = 0 ;
for ii = 1:nF
fname = F(ii).name ;
end
filename = fullfile(fname);
fileID = fopen(filename);
formatSpec = '%s';
N = 1;
c_text = textscan(fileID,formatSpec,N,'Delimiter',' ');
c_data = textscan(fileID,'%f %f');
v=c_data{1};
i=c_data{2};
idi = i>0;
idv=v<0.4;
v_pos = v(idv);
i_pos= i(idi);
% v_limit=v_pos(idv)
inty = trapz(v_pos, i_pos)
setvalue = 0.06;
[~,closestIndex] = min(abs(setvalue-v_pos));
vm= v_pos(closestIndex)
setvalue = 0.4;
[~,closestIndex] = min(abs(setvalue-v_pos));
vf= v_pos(closestIndex)
ifinal=i_pos(closestIndex)
figure(1)
plot(v,i)
hold on
hold off
grid
area=inty-[(vf-vm)*ifinal]
yline(0);
cvarea=area/1000;
qh=cvarea/c.cvscanrate;
active_area=qh/(c.qpt*c.A);
fprintf('Active surface area of catalyst %g cm^2 Pt/ cm^2 electrode \n', active_area);
使用trapz时出错(第66行) 点间距必须是指定均匀间距的标量或每个数据点的x坐标向量。