【发布时间】:2021-02-20 18:51:28
【问题描述】:
我有两个网格坐标矩阵X 和Y,通过调用[X, Y] = meshgrid(x, y) 创建,所以它们的元素代表坐标。如何使用矩阵V 的高度在 xy 平面上绘制表面,仅用于满足特定方程的坐标?例如,我的绘图延伸到半径a,但我不想将任何数据绘制到满足方程 sqrt(x^2 + (yc)^2) b, c (a>b) 被赋予常量和x=X(i,j), y=Y(i,j)。除了创建两个网格坐标矩阵(最大半径a)然后使用嵌套的for循环从X、Y、V 中手动删除元素之外,是否有一种简单的方法可以做到这一点?我还没有找到任何方法来通过更改x、y 来限制我感兴趣的绘图区域。
【问题讨论】:
-
制作
vNaN。说你可以制作v(x>5 && mod(y/3)==0)=NaN,然后只需surf。所有的 NaN 都不会被绘制 -
@AnderBiguri 您如何在 MATLAB 中编写此代码?我认为如果没有 for 循环,这条线是行不通的。
-
不正确,该行是完全有效的matlab。阅读“逻辑索引”,或者只是尝试一下
标签: matlab matrix plot surface