如何在matlab中找到数组中值的位置

时间:2014-08-20 10:01:45

标签: matlab

认为我有一个类似的数组 A = {1,2,3,4,5,6} 我需要在这个数组中获得4的位置。 我试过了, p = find(A == 4)

请帮忙。

3 个答案:

答案 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位,以提供更好的测试。