就像假设我需要创建一个名为pressure
的函数p
(一个二维矩阵),它取决于2个变量r
和z
。< / p>
u
,v
,w
是线性矩阵,也取决于2个变量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
的{{1}}值需要(r,z)
,我希望如果我提供输入(0.4,0.8)
,我会得到结果。
答案 0 :(得分: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);
(我可能在错误的顺序中找到了最后一个函数中的r
和z
,试一试)。
答案 1 :(得分:0)
在您的情况下,最简单的方法是通过乘以10将小数转换为整数。
这样,位置(r,z)=(0.4,0.8)将变为(4,8)。
如果您不想记住每次提供位置乘以10,只需创建一个能够为您完成的功能,这样您就可以使用小数位置调用该函数。
如果您的矩阵线性,您将始终找到一个乘法因子来摆脱小数坐标。