How can I run the calculation of one equation through a range of variables in one loop
1 view (last 30 days)
Show older comments
Hi
I am inexperienced with MATLAB and new to this forum.
I and am trying to calculate weight transfer at varying inclines at varying amount of acceleration and get a range of values out which i can then calculate the amount of tyre deflection and plot (Wf, Ax), (Wf, S_T), and (Dt, Wf).
I am ok with plotting.
I hope you can help
Thanks in advance
Stu
i = 1;
for S_T = 0:3:60
TS_T =(deg2rad(S_T));%incline in Radians
TGDs = sin(TS_T); %Sine of incline
TC_T =(deg2rad(S_T));%incline in Radians
TGDc = cos(TC_T); %Cosine of incline
for Ax = 0:0.25:5
Wf(i)=(((W*cWB*TGDc)-(W*hCoG*TGDs)-((W/g)*Ax*hCoG))/WB)/9.81;
end
if Wf>=0
Wfo = Wf;
Dt = (0.5*Wfo)/(0.00028*P*d+3.45);
end
end
i=i+1;
0 Comments
Answers (2)
Walter Roberson
on 19 Oct 2021
S_T = 0:3:60; %row vector
TGDs = sind(TS_T); %Sine of incline
TGDc = cosd(TC_T); %Cosine of incline
Ax = (0:0.25:5).'; %column vector
Wf = (((W .* cWB .* TGDc) - (W .* hCoG .* TGDs) - ((W./g) .* Ax .* hCoG))./WB)./9.81;
Wfo = nan(size(Wf));
Dt = nan(size(Wf));
mask = Wf > 0;
Wfo(mask) = Wf(mask);
Dt(mask) = (0.5*Wfo(mask)) ./ (0.00028 .* P .* d + 3.45);
This will give you results that are length(ST) columns and length(Ax) rows.
Your existing code only copies to Wfo and Dt for cases where Wf are positive -- leaving it undefined what should happen if Wf <= 0. I duplicate that behaviour as best practical by writing NaN into Wfo and Dt and only putting in other values for the locations where Wf > 0
KSSV
on 19 Oct 2021
You can proceed something like below. No need to use loops.
i = 1;
S_T = 0:3:60 ;
TS_T =(deg2rad(S_T));%incline in Radians
TGDs = sin(TS_T); %Sine of incline
TC_T =(deg2rad(S_T));%incline in Radians
TGDc = cos(TC_T); %Cosine of incline
Ax = 0:0.25:5;
Wf=(((W*cWB*TGDc)-(W*hCoG*TGDs)-((W/g)*Ax*hCoG))/WB)/9.81;
Wfo = Wf(Wf>=0) ;
Dt = (0.5*Wfo)/(0.00028*P*d+3.45);
See Also
Categories
Find more on Programming Utilities in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!