How can I plot a surface with changing constant?

3 views (last 30 days)
Hi guys,
I have a complex question. I want to graph the following equation as a surface. However, the constant A changes with a certain value of the y-axis:
Want to graph: z = M - 10x - 3.5y
Where
M = 5 + 3 for y < 10
M = 5 + 4 for 10 < y < 20
M = 5 + 5 for 20 < y < 30
Does this make sense? The value of the constant depends on the value of the y.
How can I approach this?
Thanks

Accepted Answer

Star Strider
Star Strider on 17 Apr 2014
I suggest this as a possibility:
M = [3 4 5];
z = @(x,y) 5 + M(max(1,fix((y-30+0.1)/10)+3)) - 10.*x - 3.5.*y;
I tested the M-matrix addressing with this statement:
Mr = [y' max(1,(fix((y-30)/10)+3))' M(max(1,fix((y-30+0.1)/10)+3))']
The surface plot is an inclined plane.
  2 Comments
Walter Roberson
Walter Roberson on 17 Apr 2014
There needs to be a jump at y = 10 and at y = 20
Star Strider
Star Strider on 17 Apr 2014
Edited: Star Strider on 18 Apr 2014
There are in the code I tested, both with the Mr test variable and with z(y) with a fixed x=15. I was expecting visible discontinuities in the surface plot with X and Y defined with meshgrid with x and y defined as [0:0.1:30], but when I looked for them in the 2D plot, they were there but barely visible.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 17 Apr 2014
[X, Y] = ndgrid(....);
Z = 5 - 10 * X - 3.5 * Y;
Z(10 < Y & Y < 20) = Z(10 < Y & Y < 20) + 4;
and so on.
Note: your M is not defined for Y = 10 exactly or Y = 20 exactly
  1 Comment
A
A on 18 Apr 2014
Edited: A on 18 Apr 2014
Thank you for the solutions to you both.
I'm uncertain which solution is the best one to use in my case?
I want to be able to graph this as a surface?
Thank you

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!