圆柱轴上的 Matlab 3D 图

标签 matlab 3d cylindrical

我已经运行了模拟,这些模拟给出了对应于 X 个不同半径的数据点,以及 Y 个角度,每个角度都被评估了。这意味着我需要绘制 XY 数据点。

我目前正在以一种非理想的方式绘制它:我正在使用 xy 轴作为 rtheta 轴。这意味着我的数据显示为正弦趋势,在笛卡尔网格上随半径增加,而不是它物理上代表的圆。这就是我目前绘制数据的方式:

surf(r_val, th_val, v_val);

我想做的是在圆柱轴上绘制我的数据,例如函数 polar(),但在 R3 空间中。我宁愿不下载工具箱,也不修改现有的极坐标功能;如果没有其他解决方案,那么我显然最终还是会这样做。

感谢您的帮助! G.

此外,我正在使用 Matlab 2012a

编辑:

r_val = 包含唯一半径的 1x8 向量

th_val = 包含唯一角度的 1x16 向量

v_val = 8x16 矩阵,包含每个位置对应的电压

注意:(回答后)

这个问题不存在真正理想的解决方案,因为 Matlab 目前不支持真正的极轴方法。 Resource found here .

最佳答案

在绘制它们之前,您应该将坐标转换为笛卡尔坐标。 MATLAB 具有用于执行坐标变换的内置函数。参见,例如 pol2cart , 它将极坐标或柱坐标转换为笛卡尔坐标。在您的情况下,您只需使用类似的东西:

[x, y] = pol2cart(th_val, r_val);

surf(x, y, v_val);

编辑:鉴于th_valr_val是不同长度的向量,因此有必要在调用 pol2cart 之前先创建一个点网格, 沿着:

[R, T] = meshgrid(r_val, th_val);
[x, y] = pol2cart(T, R);
surf(x, y, v_val);

关于圆柱轴上的 Matlab 3D 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11189830/

相关文章:

matlab - VLFeat - 如何修复 "Warning: Name is nonexistent or not a directory"?

algorithm - 使用(部分)统一网格表示减少3D A *寻路中的节点数量

c# - RenderTargetBitmap 和 Viewport3D - 质量问题

c++ - 如何在 opengl 中沿 y 轴或 x 轴绘制圆柱体

matlab - 如何在 Matlab 中制作圆柱形 3D 等高线图?

matlab - matlab appdesigner 中 uiaxes 中的平移和缩放功能

java - 相当于 Matlab 的 "randsample"随机样本

matlab - 计算部分图像的平均值

swift - Scenekit - Material /纹理的细节级别

image - 扭曲图像出现在圆柱投影中