How can I plot a surface with changing constant?

1 回表示 (過去 30 日間)
A
A 2014 年 4 月 17 日
編集済み: A 2014 年 4 月 18 日
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

採用された回答

Star Strider
Star Strider 2014 年 4 月 17 日
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 件のコメント
Walter Roberson
Walter Roberson 2014 年 4 月 17 日
There needs to be a jump at y = 10 and at y = 20
Star Strider
Star Strider 2014 年 4 月 17 日
編集済み: Star Strider 2014 年 4 月 18 日
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.

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2014 年 4 月 17 日
[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 件のコメント
A
A 2014 年 4 月 18 日
編集済み: A 2014 年 4 月 18 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeComputational Geometry についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by