如何定义具有小数索引号的数组
问题描述:
赞同我想创建一个名为pressure
的函数p
(一个2-D矩阵),它取决于2个变量r
和z
。如何定义具有小数索引号的数组
u
,v
,w
是线性的矩阵,其也依赖于两个变量r
和z
。
r
和z
是下述定义线性矩阵采取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)
,我得到的结果。
答
在你的情况下,最简单的方法是将分数为整数乘以10
这样的位置(R,Z)=(0.4,0.8)将成为(4,8)转换。
如果您不想记住每次提供的位置乘以10,只需创建一个函数,它将为您做,因此您可以调用具有分数位置的函数。
如果你的矩阵是线性,你总是会找到一个乘法因子来摆脱小数坐标。
答
不完全知道你的意思在这里,但如果你的矩阵,在指数只定义了你给(即你只想从固定的一组您定义的索引得出的值),那么这应该这样做:
% 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已经变得r
和z
帽子的最后一个功能按错误的顺序,试试吧)。
这不是OP想要的。他有一个公式来计算事情,他希望如他的头衔所说的*分数指数*。这与插值无关。 – Adriaan
也许你是对的,但我从他问的方式不太明白。无论如何,压力是一个连续的现象,也许他可能会发现查看固定指数之间的值是有用的。 –