我想surf这个功能:

z=w.'*p %(close form)

哪一个:

w=[w0; w1]
p=[cte0; cte1]

在那里,w是可变的,cte0和cte1可以是任何数字。 要使用surf我们需要通过meshgrid生成w0和w1:

[w0,w1]=meshgrid(-50:1:50)

现在我们只能通过操纵方程式( z=w.'*p )来达到答案:

z=w0*cte0+w1*cte1 %(open form)
surf(z)

我不想操纵我的等式,因为在其他情况下,更大的等式并不是那么容易操纵它们。 除了符号工具箱之外,有没有办法简单地以这种紧密的形式到达表面?

===============>>#1 票数:3 已采纳

所以,假设您从“近似形式”等式开始作为匿名函数

z = @(w) w.'*p;

假设已经定义了p并且需要输入为2乘1。 MATLAB中的任何高级绘图程序(例如fsurf )如何知道输入应该是2乘1(即一组独立变量[x; y] )? 它们不会,除非你将此函数包装在另一个函数中,如下所示:

fxy = @(x, y) z([x; y]);

因此,这个函数需要两个变量作为输入,并将它们连接起来并以正确的形式传递给函数z 但是函数fxy如何处理xy向量或矩阵输入? 不太好,所以我们必须添加另一层包装来处理它(由arrayfun ):

fxyMat = @(x, y) arrayfun(fxy, x, y);

现在你有一个函数,它为两个变量提供矢量或矩阵输入,并最终评估原始的,未改变的等式。 您现在可以使用fsurf绘制它而无需在多个点自己进行显式评估(基本上,您让fsurf为您执行此操作):

p = [1; 2];
z = @(w) w.'*p;
fxy = @(x, y) z([x; y]);
fxyMat = @(x, y) arrayfun(fxy, x, y);
fsurf(fxyMat, [-50 50]);

这是情节(这个例子只是一个简单的倾斜平面):

在此输入图像描述

===============>>#2 票数:0

[w0,w1] = meshgrid(-50:1:50) ;

cte0 = rand ;
cte1 = rand ;
p = [repmat(cte0,size(w0)) ; repmat(cte1,size(w1))] ;
w = [w0 ; w1] ;
Z = w.*p ;

  ask by mohammadsdtmnd translate from so

未解决问题?本站智能推荐:

2回复

如何在Matlab中绘制曲面?

我正在尝试从管道上切出一个部分,并且想要制作一个弯曲的表面来代表管道的外部。 但是,当我绘制表面时,我只会得到表面的对角线,而不是表面本身。 我怎样才能解决这个问题? MWE:
1回复

如何在Matlab中绘制参数化曲面

我有一个参数化B样条曲面S 现在,我只是通过将S每一列绘制为一个点来绘制表面: 结果是这样的: 不幸的是,通过绘制单个点,当我们看这张照片时,我们会失去深度和弯曲感。 关于如何为参数曲面实现SURF或MESH命令的任何想法? 这些功能似乎需要代表meshgri
1回复

如何使用冲浪或网格显示二维矩阵?

假设我有一个矩阵A ,如何用surf或mesh显示它,即XY轴是元素的索引(例如i,j ),而Z值是A(i,j) ?
1回复

冲浪图上的Matlab叠加图Comet3

我想在一个冲浪图上绘制一个Comet3图,这可能吗? 坚持没有用。
1回复

在matlab中绘制两个重叠的表面图

运行时得到以下图 当我分别运行此代码时 我得到以下 这里a,b是x1和y1的子集。 但是我想要的是我想在第一个表面图的顶部绘制第二个图。 我使用了hold并使用了代码, 这就是我得到的 为什么在此之上看不到第二张图?
1回复

在Matlab中绘制3D云的表面

我有3D点云。 我需要将它们绘制为表面。 我尝试使用meshedrid,griddata,分散Interpolant,trisurf-delaunay的变体。 什么都没有。 我知道这个问题已经讨论了很多,但是似乎我不明白一些重要的细节。 我现在拥有的代码: 产生以下图像:
2回复

如何在matlab中在图像上绘制3D热图或直方图?

我有这种类型的数据: 第一个条目是感兴趣的区域(总共9个区域),剩下的4个数组条目是区域内停留的时间长度(现在这个问题只是随意的)。 我想绘制地图图片上每个区域中每个东西的多长时间作为3d“热图”样式图。 地图分为3x3网格,如下所示: 我如何绘制这个? 我已经尝试了轮
2回复

Matlab-冲浪和轮廓3,剪切顺序?

我在Matlab中将数据绘制为曲面。 我有三个数据矩阵, x,y,z. z的值不得超出0〜1的范围。 我使用以下方法生成图: 我还对曲面进行了一些修改,例如设置shading interp 。 如您所见,结果图像将轮廓与下层曲面一起修剪。 如何确保轮廓和标签绘制在
1回复

如何在MATLAB中创建等轴锥?

我需要创建一个通过在两条曲线形成的y轴上旋转生成的曲面。 我已经有了这两条曲线的方程式。 这是形状 我已经创建了曲面,但是对于由该曲线之一形成的等宽锥,这是我的脚本: 这是我的结果 在另一条曲线中,函数(z)相同,但是改变r,h,L 谢谢你的帮助,
1回复

如何使用一组数据在Matlab中绘制3D曲面[重复]

这个问题已经在这里有了答案: 如何从我的surf()数据中创建2D矩阵? 2个答案 我有一组未排序的3D数据。 我需要绘制一个基本上将它们连接在一起的表面,并根据我的z值对该表面着色。 这是我拥有的数据的示例。 -0.144847 -5.239271 -