how to create a function ?

2 views (last 30 days)
MUKESH KUMAR
MUKESH KUMAR on 4 Oct 2017
Answered: Guillaume on 4 Oct 2017
I want to create a function which gives following information like
fi = @(a,b) ([a:data_len 1:b]);
if x<y
A= x:y ;
if x>y
A = fi(x,y);
for example:
if x=6
y= 10
then A= 6 7 8 9 10
but if x= 20 and y=2 like time in a watch
then A= 20 21 22 23 24 1 2
but this function only gives 20 1 2 .
  1 Comment
Rik
Rik on 4 Oct 2017
You are not very clear in what you want, but I would guess the value of data_len was set to 20 instead of 24 when the anonymous function fi was created.

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 4 Oct 2017
Assuming that 0 instead of 24 is ok:
data_len = 24;
f = @(a, b) mod(a : b + data_len*(a>b), data_len);
results:
>> f(6,10)
ans =
6 7 8 9 10
>> f(20, 2)
ans =
20 21 22 23 0 1 2

More Answers (1)

Image Analyst
Image Analyst on 4 Oct 2017
Why not
A = rem(x:y, 24)
It's not clear why you have a 24 in there instead of 0. I've never seen 24 used for an hour in a 24 hour clock.

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!