【发布时间】:2014-08-06 13:30:04
【问题描述】:
我试图在多维数组中查找仅在一列中的值。搜索整个多维数组时,我可以找到正确的值。但是,如果我尝试将多维数组中的查找限制为仅说第二列,则值不是预期的。
代码示例和正确输出:
A = [2 4 6; 8 10 12]
A(:,:,2) = [5 7 9; 11 13 15]
A(:,:,3) = [55 4 55; 167 167 154]
[row,col,page]=ind2sub(size(A), find(A(:,1,:)==4))
row =1,1
col =2,2
page =1,3
但如果我尝试使用这些命令将查找限制在第二列
[row,col,page]=ind2sub(size(A), find(A(:,2,:)==4))
row =1,1
col =1,3
page =1,1
我得到的值与预期值不同。 我试图将多维查找限制为搜索所有页面、所有行和一个特定列。输出应该与第一个示例相同。我该如何解决这个问题?
【问题讨论】:
-
据我了解,在搜索特定列时,您基本上希望找到行号和页码。因此,您可以专注于查找行号和页码。您可以使用它 -
[row,~,page]=ind2sub([size(A,1) 1 size(A,3)],find(A(:,col_num,:)==4)),其中col_num将是您正在搜索的列号。诀窍是使用1而不是size(A,2)。
标签: arrays matlab multidimensional-array octave