3

我已经运行了模拟,这些模拟为我提供了X与不同半径数量相对应的数据点,以及Y每个被评估的角度数量。这意味着我有需要绘制的X时间数据点。Y

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

surf(r_val, th_val, v_val);

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

谢谢你的帮助!G。

另外,我正在使用 Matlab 2012a

编辑:

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

th_val = 1x16 包含独特角度的向量

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

注意:(回答后)

这个问题不存在真正理想的解决方案,因为 Matlab 目前不支持真正的极轴方法。资源在这里找到

4

1 回答 1

5

在绘制坐标之前,您应该将坐标转换为笛卡尔坐标。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);
于 2012-06-25T13:07:18.613 回答