I got error in this script
18 ビュー (過去 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!