How can I plot a surface with changing constant?
1 view (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
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
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.
More Answers (1)
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
See Also
Categories
Find more on Computational Geometry in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!