2016-12-14 150 views
0

赞同我想创建一个名为pressure的函数p(一个2-D矩阵),它取决于2个变量rz如何定义具有小数索引号的数组

uvw是线性的矩阵,其也依赖于两个变量rz

rz是下述定义线性矩阵采取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) 

现在,在一个给定的位置假设的p(r,z)说需要(0.4,0.8),我想,如果我给输入p(0.4,0.8),我得到的结果。

回答

0

在你的情况下,最简单的方法是将分数为整数乘以10

这样的位置(R,Z)=(0.4,0.8)将成为(4,8)转换。

如果您不想记住每次提供的位置乘以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); 

(我可以在T已经变得rz帽子的最后一个功能按错误的顺序,试试吧)。

+0

这不是OP想要的。他有一个公式来计算事情,他希望如他的头衔所说的*分数指数*。这与插值无关。 – Adriaan

+0

也许你是对的,但我从他问的方式不太明白。无论如何,压力是一个连续的现象,也许他可能会发现查看固定指数之间的值是有用的。 –