误差函数简化:interp1采样点必须是唯一的。

85(30天)
大家好,
我必须显示一个超音速绕流的流线锥。我有meshgrid和速度组件以这种方式
x = [0, 0.333333333333333, 0.666666666666667, 1.00000000000000;
0,0.332271622840308,0.664543245680615,0.996814868520923;
0,0.331377263507562,0.662754527015124,0.994131790522686;
0,0.331191240165995,0.662382480331990,0.993573720497985);
y = [0, 0.0587561394208747, 0.117512278841749, 0.176268418262624;
0,0.0644900278013948,0.128980055602790,0.193470083404184;
0,0.0689384091852737,0.137876818370547,0.206815227555821;
0,0.0698266243496454,0.139653248699291,0.209479873048936);
Vx = 1.0 e + 03。* (2.9768 2.9856 2.9926 2.9941;
2.9768 2.9856 2.9926 2.9941;
2.9768 2.9856 2.9926 2.9941;
2.9768 2.9856 2.9926 2.9941);
v = [524.7211 524.7211 524.7211 524.7211;
477.1746 477.1746 477.1746 477.1746;
442.4958 442.4958 442.4958 442.4958;
435.4701 435.4701 435.4701 435.4701);
颤情节很好地工作,但是当我展示流线得到这个错误
图();
情节(x, y,“同意”)
持有;
简化(x, y, Vx、v 0 (1、4), 0 (1,4);
错误使用matlab.internal.math.interp1
采样点必须是唯一的。
错误interp1(第188行)
VqLite = matlab.internal.math.interp1 (X, V,方法,方法,Xqcol);
错误stream2(第63行)
syi = interp1 (yy (:), 1: szu (1), sy (k));
简化误差(第62行)
绿党= stream2 (x, y, u, v, sx, sy,选项);
错误cuneo_vs_cono(第65行)( < - - -这是我工作的脚本名称 )
简化(x, y, Vx、v 0 (1、4), 0 (1,4);
我也试图用不同的起点但我总是,总是同样的错误。也许有些错误在使用它们吗?
谢谢你!

答案(1)

本杰明·克劳斯
本杰明·克劳斯 2023年3月7日
编辑:本杰明·克劳斯 2023年3月7日
你的问题是你的X和Y的形式提供的输入数据 简化 。的 简化 医生页面(关于X输入)说:“ x 设在向量的坐标数据,指定为一个二维或三维数组,可以结合 Y (可选 Z ),形成一个网格坐标。您可以使用 meshgrid 创建数组函数。”
在这种情况下,您有四个值X和Y矩阵中对应于同一点(0,0),这是无效的输入 简化 。的具体问题是第一列 y 都是一样的。这些坐标被传入 interp1 这是生成的错误消息。
X和Y是为了反映网格点的坐标,但提供的坐标,你不是真的在网格中。你能给更多的细节关于X和Y的值是什么意思在你的数据?
1评论
莱昂纳多Molino
莱昂纳多Molino 2023年3月7日
编辑:莱昂纳多Molino 2023年3月7日
谢谢你的回答。
x和y坐标数据出现在球面和线性坐标之间的转换。我已经解决了在球坐标Taylor-Maccol问题。为每一个ω表示海拔对x轴有两个速度分量,V_omega V_r。每个ω,然后,我将这些点的坐标,生成一个半径从0到锥的尖端
ω=翻转(cell2mat ((1) .omega} {。');
Vr =翻转(cell2mat ((1) .Vr} {。');
Vomega =翻转(cell2mat ((1) .Vomega} {。');
npx = 80;
r = linspace (0,1 / cosd(ω(1)),npx);
k = 1:长度(ω)
j = 1:长度(右)
x (k, j) = r (j)。* cosd(ω(1 k));
y (k, j) = r (j)。*信德(ω(1 k));
Vx (k, j) = Vr (k) * cosdω(k) - Vomega (k) *信德(ω(k));
v (k, j) = Vr (k) *信德(ω(k)) + Vomega (k) * cosd(ω(k));
结束
结束
ω,Vr和Vomega数值解算器。矩阵的点正好在刚开始的时候,因为他们代表了锥的起源。
沿着给定的海拔,V_r和V_omega是相同的对于每一个给定的点。他们变化只有当我们从海拔到另一个“开关”。

登录置评。

s manbetx 845


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的