# how can i write this lissajous function in matlab????

Asked by mari gaji on 7 Aug 2012
Latest activity Commented on by Walter Roberson on 9 Aug 2012

hi all

I knew that my question is so silly, but I am new I matlab area and I need help:

I have this lissajous function:

```x (t)=Asin(at+d)
y (t)=Bsin(bt)
```

where t = from 0 to 2pi, what I need is to know how I can write this function in an m-file which take three scalars a, b, and d , and a vector t as its arguments and returns two vectors x(t) and y (t) also A=B=1

thanks for any one help

mari

regards

## Products

No products are associated with this question.

Answer by Andrei Bobrov on 8 Aug 2012
Edited by Andrei Bobrov on 8 Aug 2012
```your_lissajous = @(t,a,b,d)[sin(a*t(:)+d), sin(b*t(:))];
```

eg of use function your_lissajous

```xy = your_lissajous(0:pi/100:2*pi,7,8,0);
plot(xy(:,1),xy(:,2))
```

mari gaji on 9 Aug 2012

hi Andrei and thanks: but there is an error in this cod (??? Undefined function or method 'your_lissajous' for input arguments of type 'double'.) this is what result in matlab

Walter Roberson on 9 Aug 2012

With the (valid) definition that Andrei gave, you would only be able to invoke "your_lissajous" from within a function that had the assignment statement given. If you need to define it for use in all routines, you will need to store the following in your_lissajous.m

```function xy = your_lissajous(t, a, b, d)
xy = [sin(a*t(:)+d), sin(b*t(:))];
end
```
Answer by Walter Roberson on 8 Aug 2012

The function heading would be

```function [x, y] = my_lissajous(a, b, d, t)
```