How can I run the calculation of one equation through a range of variables in one loop
조회 수: 1 (최근 30일)
이전 댓글 표시
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
답변 (2개)
Walter Roberson
2021년 10월 19일
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
2021년 10월 19일
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);
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!