下面是两个数组的例子(一边是奇数,另一边是偶数的特殊排序)我有一些给定的length
:
两个例子:
9 7 5 3 1 2 4 6 8
11 9 7 5 3 1 2 4 6 8 10
对于某些值z
,我想找到值所在的列。我写的MATLAB代码:
if z == 1
column = ceil(length/2);
elseif logical(mod(z,2))
column = ceil(length/2) - (z-1)/2;
else
column = ceil(length/2) + z/2;
end
对大多数情况来说,这是正确的。另外,MATLAB中是否有优雅的单行程可以做到这一点?
答案 0 :(得分:3)
你可以从数组中减去你要查找的值,并找到它在零的位置(在数组和/或整数中存在的确切值的情况下)或找到它小于某个容差的位置值。
对于整数:
a = [1 2 3; 4 5 6; 7 8 9];
z = 6;
[row column] = find((a-z) == 0)
我意识到以下代码可能不是很有用,但它会在值z
的容差范围内找到值:
[row column] = find(abs(a-z) < tolerance)
这样做你想要的吗?