在我的单元格数组test = cell(1,2,20,14);
中,我想在子集测试中找到数值(:,1,1,1)。
例如test(:,:,1,1)
如下所示:
>> test(:,:,1,1)
ans =
[ 0] [0.1000] [57]
[0.9000] [0.9500] [73]
我想在第一列中找到包含0.9的单元格的索引,因此我可以访问第三列(在本例中为值73)。我试过了:
find(test{:,:,1,1} == 0.9)
给出:
Error using == Too many input arguments.
。
如何找到相应的索引?
感谢。
答案 0 :(得分:2)
尝试此操作直接访问第三列值 -
cell2mat(test(vertcat(test{:,1,1,1})==0.9,3,1,1))
编辑1:如果您想测试匹配w.r.t. test
的子集的前两列,请使用此 -
v1 = reshape(vertcat(test{:,[1 2],1,1}),[],2)
cell2mat(test(ismember(v1,[0.9 0.95],'rows'),3,1,1))
答案 1 :(得分:1)
只需在[]
周围添加test{:,:,1,1}
括号即可。这将不同的单元格值一起包装到一个向量/矩阵中。
像这样:
[index1, index2] = find([test{:,:,1,1}] == 0.9)