I got error in this script
20 次查看(过去 30 天)
显示 更早的评论
clear,clc,close all
datas = readtable('time_vs_load.xlsx','Sheet',2,'NumHeaderLines',1);
time = datas(:,1);
load = datas(:,2);
h = mean(diff(time));
n = length(load);
% Peak Loading Rate Using Central Difference formula
peak_l_r =(-3*load(1) + 4*load(2) - load(3))/(2*h);
for i = 2:n-1
peak_l_r = (load(i+1)-load(i-1))/(2*h);
end
peak_l_r = (load(n-2)-4*load(n-2) + 3*load(n))/(2*h);
peak_l_r = max(peak_l_r)
pear_loading_rate = peak_l_r
% Impulse during the entire timeseries using Trapezoidal methods
impulse = trapz(time,load)
% Results
disp(['Peak loading rate: ', num2str(peak_loading_rate)]);
disp(['Impulse: ', num2str(impulse)]);
0 个评论
采纳的回答
the cyclist
2023-10-3
编辑:the cyclist
2023-10-3
The line
time = datas(:,1);
will give a table with one variable. You need to use curly brackets in access the contents of the table column.
time = datas{:,1};
This code works (after I fixed the typo "pear_loading_rate"):
clear,clc,close all
datas = readtable('time_vs_load.xlsx','Sheet',2,'NumHeaderLines',1);
time = datas{:,1};
load = datas{:,2};
h = mean(diff(time));
n = length(load);
% Peak Loading Rate Using Central Difference formula
peak_l_r =(-3*load(1) + 4*load(2) - load(3))/(2*h);
for i = 2:n-1
peak_l_r = (load(i+1)-load(i-1))/(2*h);
end
peak_l_r = (load(n-2)-4*load(n-2) + 3*load(n))/(2*h);
peak_l_r = max(peak_l_r)
peak_loading_rate = peak_l_r
% Impulse during the entire timeseries using Trapezoidal methods
impulse = trapz(time,load)
% Results
disp(['Peak loading rate: ', num2str(peak_loading_rate)]);
disp(['Impulse: ', num2str(impulse)]);
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!