2016-12-14 4 views
0

pressureという名前の関数をp(2-D行列)という2つの変数とzに依存して作成する必要があるとします。分数インデックス番号を持つ配列を定義する方法

uvwも2つの変数r及びzに依存する線形行列です。

rzは、以下のように定義さ線形行列している今、私は私が入力p(0.4,0.8)を与えれば、私が得ることを望む、(r,z)(0.4,0.8)が必要とされていると言う与えられた場所でpの値を仮定i={1,2,3,4,5,6,7,8,9,10}

r(i)=i/10 
z(i)=i/10 
u(i) = 2*r(i) + 3*z(i) 
v(i) = 8*r(i) + 4*z(i) 
w(i) = 3*r(i) + 2*z(i) 
p = p(r,z) %, which is given as, 
p(r(i),z(j)) = 2*v(i) - 4*u(i) + w(j) 

を取ります結果。

答えて

0

あなたのケースで最も簡単な方法は、=(0.4、0.8)は(4,8)となるであろう場所(R、Z)10.

することによって、この方法を乗算して整数に小数を変換することです。

位置を10倍して覚えたくない場合は、分数の位置で関数を呼び出すことができるように、関数を作成するだけです。

あなたの行列がの直線の場合、分数の座標を取り除くために常に倍率が求められます。

0

あなたがここで何を意味しているかは完全にはわかりませんが、あなたが与えたインデックスでのみマトリックスが定義されている場合(すなわち、定義した固定インデックスセットから値を取り出したい場合)、

% the query indices 
r_i = 0.4; 
z_i = 0.8; 

value = p(r_i*10,z_i*10); 

あなたが値を使用すると、定義されたの間のものを見たい場合は、あなたが補間を見てする必要があります:

% the query indices 
r_i = 0.46; 
z_i = 0.84; 

value = interp2(r,z, p, r_i, z_i); 

(私はトンでrzを得ていること最後の機能を間違った順に試して試してみてください)。

+0

これはOPが望むものではありません。彼はタイトルに*小数点のインデックス番号*と書いてあるように、彼は望むものを計算する公式を持っています。これは補間とは関係ありません。 – Adriaan

+0

あなたは正しいかもしれませんが、私は彼が尋ねたやり方からそれを理解していませんでした。とにかく、圧力は連続的な現象です。おそらく、固定インデックスの間の値を見ることが有用かもしれません。 –

関連する問題