旋转离散数据集 Octave
Rotate discrete dataset Octave
我有一个离散数据集,X=[x1,x2,..,x12] & Y=[y1,y2,...,y12]
。 X 的范围是 [-25, 0],Y 的范围是 [1e-6, 1e0]。 X 不会均匀增加 - 当 x 接近值 0 时,数据采样密度从 2.5 的增量增加到 1 的增量。每个 x 值的单位是 cm。我无法通过拟合函数很好地拟合数据(我已经尝试了很多)。我留下了离散数据。我的需要是围绕 Z 轴完全扫描 X、Y 数据,并将生成的扫描数据值放入大小为 (51, 51) 的矩阵 Z 中。我试过使用圆柱函数,[u,v,w] = cylinder(Y)
认为我可以从 [u, v, w] 中提取数据或创建矩阵 Z。我似乎无法解决这个问题。 surf(u,v,w)
绘制 几乎 正确 - (u, v) 轴上的缩放范围是 [-1, 1] 而不是 [-25, 25]。我想这是因为我正在使用 cylinder(Y)
。当我尝试 [u,v,w] = cylinder(X,Y)
时,我得到 error: linspace: N must be a scalar
。似乎应该有比我使用圆柱体获取 X 和 Y 数据的方法更好的方法,在点之间进行插值(以填充没有数据的 Z),旋转它,并将结果放入矩阵 Z。任何欢迎提出建议。我正在使用 Octave 6.3.0。提前谢谢你。
创建一个包含距原点值距离的矩阵 R。
使用 for 循环和单值插值来覆盖 R space。
将内插值放入矩阵 Z.
% Original data X = [-25,-22.5,...,0]; size(X) = 1 12
% Original data Y = [1e-6, 1.3e-6,...,1] size(Y) = 1 12
u = [-range(X):1:range(X)]; v = [-range(X):1:range(X)]';
R = -sqrt(u.^2.+v.^2);
Z = zeros( 2 .* range(X) + 1);
for i = 1:size(R,1)
for j = 1:size(R,2)
if R(i,j) < min(X); Z(i,j) = 0; endif
if R(i,j) >= min(X); Z(i,j) = interp1(X,Y,R(i,j)); endif
endfor
endfor
我有一个离散数据集,X=[x1,x2,..,x12] & Y=[y1,y2,...,y12]
。 X 的范围是 [-25, 0],Y 的范围是 [1e-6, 1e0]。 X 不会均匀增加 - 当 x 接近值 0 时,数据采样密度从 2.5 的增量增加到 1 的增量。每个 x 值的单位是 cm。我无法通过拟合函数很好地拟合数据(我已经尝试了很多)。我留下了离散数据。我的需要是围绕 Z 轴完全扫描 X、Y 数据,并将生成的扫描数据值放入大小为 (51, 51) 的矩阵 Z 中。我试过使用圆柱函数,[u,v,w] = cylinder(Y)
认为我可以从 [u, v, w] 中提取数据或创建矩阵 Z。我似乎无法解决这个问题。 surf(u,v,w)
绘制 几乎 正确 - (u, v) 轴上的缩放范围是 [-1, 1] 而不是 [-25, 25]。我想这是因为我正在使用 cylinder(Y)
。当我尝试 [u,v,w] = cylinder(X,Y)
时,我得到 error: linspace: N must be a scalar
。似乎应该有比我使用圆柱体获取 X 和 Y 数据的方法更好的方法,在点之间进行插值(以填充没有数据的 Z),旋转它,并将结果放入矩阵 Z。任何欢迎提出建议。我正在使用 Octave 6.3.0。提前谢谢你。
创建一个包含距原点值距离的矩阵 R。 使用 for 循环和单值插值来覆盖 R space。 将内插值放入矩阵 Z.
% Original data X = [-25,-22.5,...,0]; size(X) = 1 12
% Original data Y = [1e-6, 1.3e-6,...,1] size(Y) = 1 12
u = [-range(X):1:range(X)]; v = [-range(X):1:range(X)]';
R = -sqrt(u.^2.+v.^2);
Z = zeros( 2 .* range(X) + 1);
for i = 1:size(R,1)
for j = 1:size(R,2)
if R(i,j) < min(X); Z(i,j) = 0; endif
if R(i,j) >= min(X); Z(i,j) = interp1(X,Y,R(i,j)); endif
endfor
endfor