我运行了模拟,它给出了与 X
不同半径数相对应的数据点,以及每个被评估的角度数 Y
. 这意味着我需要绘制 X
次 Y
个数据点 .
我目前正以非理想的方式绘制它:我使用 x
和 y
轴作为 r
和 theta
轴 . 这意味着我的数据显示为正弦趋势,其在笛卡尔网格上随半径增加,而不是在物理上表示的圆 . 这就是我目前正在绘制数据的方式:
surf(r_val, th_val, v_val);
我想要做的是在圆柱轴上绘制数据,例如函数 polar()
,但在R3空间中 . 我宁愿不下载工具箱,也不想修改现有的极地功能;如果没有其他解决方案,那么我显然最终会这样做 .
谢谢你的帮助! G .
另外,我正在使用Matlab 2012a
EDIT:
r_val =包含唯一半径的1x8向量
th_val =包含独特角度的1x16向量
v_val = 8x16矩阵,包含对应于每个位置的电压
NOTE: (回答后)
这个问题不存在真正理想的解决方案,因为Matlab目前不支持真正的极轴方法 . Resource found here .
1 回答
您应该在绘制坐标之前将坐标转换为笛卡尔坐标 . MATLAB具有内置函数,用于执行coordiante变换 . 例如,参见pol2cart,它将极坐标或圆柱坐标转换为笛卡尔坐标 . 在您的情况下,您只需使用以下内容:
Edit :鉴于
th_val
和r_val
是不同长度的向量,有必要在调用pol2cart
之前首先创建一个点网格,其方式如下: