how to plot a two-dimensional heaviside function

14 次查看(过去 30 天)
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?

回答(1 个)

Azzi Abdelmalek
Azzi Abdelmalek 2014-8-13
编辑:Azzi Abdelmalek 2014-8-13
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 个评论
Ksenia
Ksenia 2014-8-13
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));

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Annotations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by