认为我有一个类似的数组 A = {1,2,3,4,5,6} 我需要在这个数组中获得4的位置。 我试过了, p = find(A == 4)
请帮忙。
答案 0 :(得分:6)
如果你真的需要一个单元格数组(例如因为单元格可以包含不同大小的向量):
A = {1, [1 2 3], 4, [1 2], [3 4]}; %// example cell array
sought = [1 2]; %// sought contents
index = find(cellfun(@(x) isequal(x, sought), A));
答案 1 :(得分:3)
你创建了一个单元格数组而不是普通的向量。
尝试:
A = [1,2,3,4,5,6]
find(A==4)
单元格数组很适合存储具有不同类型的变量。例如,您可以创建一个包含字符串和数字的单元格数组。
如果数组中只有数字,则应该使用普通数组。 这些是由 [] 而不是 {}
定义的答案 2 :(得分:1)
由于您已经定义了一个单元格数组,因此需要将其转换为数字数组以便查找工作,幸运的是,使用几个放置好的括号可以很容易地实现这一点。
A = { 1,2,4,3,5,6};
find([A{:}]==4)
ans =
3
所以A {:}写出数组中的数值,[]包含find的输出。
P.S。我重新安排了A中的数字,表明它正在工作,因为'4'现在处于第3位,以提供更好的测试。