如何定义具有小数索引号的数组

时间:2016-12-14 14:01:40

标签: matlab

就像假设我需要创建一个名为pressure的函数p(一个二维矩阵),它取决于2个变量rz。< / p>

uvw是线性矩阵,也取决于2个变量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的{​​{1}}值需要(r,z),我希望如果我提供输入(0.4,0.8),我会得到结果。

2 个答案:

答案 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);

(我可能在错误的顺序中找到了最后一个函数中的rz,试一试)。

答案 1 :(得分:0)

在您的情况下,最简单的方法是通过乘以10将小数转换为整数。

这样,位置(r,z)=(0.4,0.8)将变为(4,8)。

如果您不想记住每次提供位置乘以10,只需创建一个能够为您完成的功能,这样您就可以使用小数位置调用该函数。

如果您的矩阵线性,您将始终找到一个乘法因子来摆脱小数坐标。