How to make the variable pace, a data type double

I am trying to make a function that gives me the pace required given an athletes goal
function pace = required_pace(time,distance) % time = [hrs,mins,secs] distance = km
time=floor(time)
a=time/distance
pace=duration(a,'Format','hh:mm:ss')
end
% Calling the function
time=[0,33,3] % the altheltes goal times
distance=10 %km
required_pace(time,distance)
% i get pace=0:3:18 per km
So, i think i got the right answer but i am required to have the variable pace be a data type double and i am not sure how i am meant to write the function code to get that

 채택된 답변

Stephen23
Stephen23 2021년 9월 1일
편집: Stephen23 2021년 9월 1일
T = [0,33,3]; % the atheletes goal time [H,M,S]
D = 10; % km
P = required_pace1(T,D)
P = 1×3
0 3.0000 18.3000
class(P)
ans = 'double'
P = required_pace2(T,D)
P = 1×3
0 3.0000 18.3000
% Using DURATION:
function pace = required_pace1(time,distance) % time = [H,M,S], distance = km
durn = duration(time,'Format','hh:mm:ss.SSSSSSSS');
pace = sscanf(char(durn/distance),'%f:',[1,Inf]);
end
% Without DURATION:
function pace = required_pace2(time,distance) % time = [H,M,S], distance = km
secs = [60*60,60,1]*time(:);
temp = secs/distance;
pace = nan(1,3);
pace(3) = mod(temp,60); % seconds
temp = fix(temp/60);
pace(2) = mod(temp,60); % minutes
temp = fix(temp/60);
pace(1) = temp; % hours
end

댓글 수: 2

Thanks, i am pretty new to Matlab, for future reference could you explain to me what line
pace = sscanf(char(durn/distance),'%f:',[1,Inf]);
is doing
"for future reference could you explain to me what line ... "
sscanf(char(durn/distance),'%f:',[1,Inf]);
% ^^^^^^^^^^^^^ divide duration by distance
% ^^^^^ ^ convert duration to character
%^^^^^^ ^^^^^^^^^^^^^^ convert character to double
You can easily see the intermediate results yourself by printing them to the command window.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Matt J
Matt J 2021년 9월 1일
pace=time/distance

댓글 수: 1

yeah i have done that before but i get
pace=[0,3.3,0.3]
%what i need is
pace=[0,3,18.3]%[hrs,mins,sec]

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

B
B
2021년 9월 1일

댓글:

2021년 9월 1일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by