我想使用相應的隨機Y
值生成X
值,這些隨機值在Y
的範圍內,從我使用pchip
函數創建的圖形,但我希望生成的X
值保持在一個特定的範圍。從給出Y值的使用pchip創建的圖形中查找X值。 MATLAB
我的代碼:
samples=10
r=rand(samples,1)
Y=[0.93 0.94 0.95 0.96 0.97 0.98 0.99 1];
x=12.5:45:327.5;
angle=pchip(y,x,r);
輸出:
angle =
1.0e+03 *
-0.1392
-3.3718
-3.4856
-3.2264
-0.5284
-0.8114
-2.2368
-0.0804
-2.9240
-1.9510
我希望值-12.5-360之間說謊,我相信我可以用這樣的:
Y=[0.93 0.94 0.95 0.96 0.97 0.98 0.99 1];
x=12.5:45:327.5;
xi=-12.5:360;
angle=pchip(y,xi,x);
但我不能那麼得到它產生所需的X
值從給定的Y
值。 我曾嘗試以下,但它不工作:
samples=10
r=rand(samples,1)
Y=[0.93 0.94 0.95 0.96 0.97 0.98 0.99 1];
xi=-12.5:360;
x=12.5:45:327.5;
angle=pchip(y,xi,x,r);
我已經看了看mathworks pchip article和其他MathWorks的文章,但他們似乎並沒有解決我的問題,又看了看這個計算器文章How can I ask matlab to give me the value of y if I input the value of x?,這WASN所需的解決方案。
感謝您的時間和幫助,您可以提供。
編輯1 - 阿多一點信息
我認爲會解決我的問題是,如果我能得到pchip
功能只是爲了我的內插數據之間設置點最大值和最小值。正如TryHard所指出的那樣,數據可能被插值在已定義的數據之外導致不穩定性。 我知道我可以在一定範圍內插正如我上面證實,但我希望能夠做到這一點,併產生X
值給出的Y
值矢量r
在你最後的代碼片段,使用'角= pchip(X,Y,XI);'對我的作品......究竟是什麼錯的結果呢?你確實意識到'x'必須在參數中的''y之前? – Dan
我最好的猜測是你正在應用一個插值函數來*推斷*:注意值r> Y。這可能導致不穩定。你想從你的(x,y)數據推斷嗎?也許如果你能更清楚地解釋你的總體目標? –
@Dan是使用'angle = pchip(x,Y,xi);'工作正常,但不會給我輸出我需要,因爲我希望它給出一個樣本結果大小'r',如我的第一個代碼段所示。另外我還按照我需要的順序編寫了'X'和'Y',以獲得正確的結果。 – user2519890