how to plot a two-dimensional heaviside function

15 Ansichten (letzte 30 Tage)
Ksenia
Ksenia am 13 Aug. 2014
Kommentiert: Ksenia am 13 Aug. 2014
Hi, everybody! I'm trying to plot some heaviside function like that:
x=0:1000;
y=0:500;
z=0:25;
R=25*(heaviside(x-40)-heaviside(x-240))*(heaviside(y-40)-heaviside(y-160));
but I always get an error sound like
error using * Inner matrix dimensions must agree.
I was trying to rewrite an expression like this:
R=25*(heaviside(x-40)-heaviside(x-240)).*(heaviside(y-40)-heaviside(y-160));
but I've got the same mistake with using .*.... What can you suggest? And also how to plot functions like that?

Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 13 Aug. 2014
Bearbeitet: Azzi Abdelmalek am 13 Aug. 2014
x=0:1000;
y=0:500;
z=0:25;
a=25*(heaviside(x-40)-heaviside(x-240)),
b=(heaviside(y-40)-heaviside(y-160));
out=bsxfun(@times,a.',b)
  1 Kommentar
Ksenia
Ksenia am 13 Aug. 2014
My first attempt was right. I've got a great plot by changing code like this:
[x,y]=meshgrid(0:30:1000, 0:30:500);
R=25*(heaviside(x-40)-heaviside(x-240)).*(heaviside(y-40)-heaviside(y-160));

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by