matlab用三个for循环画三变量函数图,代码如下,运行错误代码如下,错在哪里,怎么改

代码:x1=linspace(-2,2,10);y1=linspace(-3,3,10);z1=linspace(-4,4,10);f=zeros(length(x1),... 代码:x1=linspace(-2,2,10);
y1=linspace(-3,3,10);
z1=linspace(-4,4,10);
f=zeros(length(x1),length(y1),length(z1));
count1=1;
for x=x1
count2=1;
for y=y1
count3=1;
for z=z1;
f(count1,count2,count3)=x+y+z;
count3=count3+1;
end
count2=count2+1;
end
count1=count1+1;
end
surf(x1,y1,z1,f)

错误:??? Error using ==> surf at 78
Z must be a matrix, not a scalar or vector.
Error in ==> three_for at 18
surf(x1,y1,z1,f)
展开
 我来答
百度网友a536a36
2013-02-22 · TA获得超过4479个赞
知道小有建树答主
回答量:534
采纳率:100%
帮助的人:274万
展开全部
这个稍微一想就想通了。

matlab里边surf就是surface,本来的意思就是表面。所谓画出来的四维的图,不过是一个三维图,每个点再配上一个与第四维对应的颜色罢了。

而你这个x1,y1,z1根本就画不出平面来。如果要是个平面,z1需要是x1*y1大小的矩阵,而不应该是个向量。
更多追问追答
追问
我这里的z1是一个自变量,f是因变量,z1跟x1和y1的性质是一样的,z1为什么必须得是矩阵呢
追答
那样你就画不出图来了。你能想想一个四维图像是什么样么?
如果x1是自变量,y1是因变量,那么是平面上的一条曲线。有两条坐标轴。
如果是自变量,z1是因变量,那么是一条空间曲线或者曲面。有三条坐标轴。

如果x1,y1,z1是自变量,f1是因变量,你觉着你画出来的是什么?我想象不出来四个轴的图。
甘明辉
2013-02-23
知道答主
回答量:12
采纳率:0%
帮助的人:1.9万
展开全部
Z必须是矩阵,你的z1是数组或者向量,步进一下看看
surf(x,y,z,c),一般情况下,x,y,z是相同维数的矩阵,xy是网格坐标矩阵,z是在x,y网格坐标上的值的矩阵,c是不同高度的颜色值
追问
那这个f=x+y+z能画吗
追答
可以x,y,z是坐标,是矩阵,f是颜色
首先你要画什么?确定你要什么效果,再来想怎么画
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式