24小时热门版块排行榜    

查看: 3411  |  回复: 8

breathwave

铜虫 (小有名气)

[求助] 如何用Matlab画z关于x和y的函数图?谢谢大家!

下面是z关于x和y的函数,如何用Matlab画出z与x,y的关系图,其中x和y的取值都是从0到128的整数。
z=x*y+x*(log((128-y)^0.6)+(8/((128-y)^0.6))^2.5);
我写的程序:
x=(1:128)';
y=1:128;
z=x*y+x*(log((128-y)^0.6)+(8/((128-y)^0.6))^2.5;
但显示的结果是;
??? Error using ==> mpower
Inputs must be a scalar and a square matrix.
请教各位大牛,怎么办啊?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖


breathwave(金币+5): 问题j解决了,非常感谢啊 2011-11-17 23:16:50
余泽成(金币+1): 谢谢参与应助,欢迎常来程序语言版! 2011-11-19 14:28:59
CODE:
%曲线
x=1:128;
y=1:128;
z=x.*y+x.*(log((128-y).^0.6)+(8./((128-y).^0.6)).^2.5);
plot3(x,y,z)
%曲面
[x,y]=meshgrid(1:128,1:128);
z=x.*y+x.*(log((128-y).^0.6)+(8./((128-y).^0.6)).^2.5);
figure;mesh(x,y,z)

The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2011-11-17 21:16:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

breathwave

铜虫 (小有名气)

你好!我想请问一下,这种三维图,应该画出来是曲面图,为什么还可以画成一条曲线啊?是不是在这条曲线上是x=y?
3楼2011-11-21 10:12:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)


余泽成(金币+1): 谢谢参与应助! 2011-11-21 12:11:32
引用回帖:
3楼: Originally posted by breathwave at 2011-11-21 10:12:40:
你好!我想请问一下,这种三维图,应该画出来是曲面图,为什么还可以画成一条曲线啊?是不是在这条曲线上是x=y?

这里主要看,x与y的取值,和方程形式,例如螺纹线方程
x^2+y^2=r^2;
z=k·[2π+arctan(y/x)];
画出来就是曲线
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
4楼2011-11-21 11:12:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

breathwave

铜虫 (小有名气)

谢谢!是啊,图已经画出来了,但是我不知道怎么把坐标值给输出来。。。
5楼2011-11-21 11:27:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

breathwave

铜虫 (小有名气)

送鲜花一朵
但是如何把(x,y,z)的坐标值给输出来啊?谢谢!
6楼2011-11-21 11:30:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

★ ★
余泽成(金币+2): 谢谢参与应助! 2011-11-21 12:11:48
[x,y]=meshgrid(1:128,1:128);
z=x.*y+x.*(log((128-y).^0.6)+(8./((128-y).^0.6)).^2.5);
这个已经把xyz的值算出来了
在workspace里面、
要(x,y,z)的坐标值输出
可以 这样写
[x,y]=meshgrid(1:128,1:128);
z=x.*y+x.*(log((128-y).^0.6)+(8./((128-y).^0.6)).^2.5);
x=x(;
y=y(;
z=z(;
[x,y,z]
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
7楼2011-11-21 11:37:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

★ ★
余泽成(金币+2): 谢谢参与应助! 2011-11-21 12:12:04
引用回帖:
7楼: Originally posted by dbb627 at 2011-11-21 11:37:46:
[x,y]=meshgrid(1:128,1:128);
z=x.*y+x.*(log((128-y).^0.6)+(8./((128-y).^0.6)).^2.5);
这个已经把xyz的值算出来了
在workspace里面、
要(x,y,z)的坐标值输出
可以 这样写
[x,y]=meshgrid(1:128,1:128); ...

[x,y]=meshgrid(1:128,1:128);
z=x.*y+x.*(log((128-y).^0.6)+(8./((128-y).^0.6)).^2.5);
这个已经把xyz的值算出来了
在workspace里面、
要(x,y,z)的坐标值输出
可以 这样写
CODE:
[x,y]=meshgrid(1:128,1:128);
z=x.*y+x.*(log((128-y).^0.6)+(8./((128-y).^0.6)).^2.5);
x=x(:);
y=y(:);
z=z(:);
[x,y,z]

The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
8楼2011-11-21 11:38:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

breathwave

铜虫 (小有名气)

谢谢哈,搞定了!
9楼2011-11-21 15:13:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 breathwave 的主题更新
信息提示
请填处理意见