Matlab 搜索向量和返回索引的单元格数组
我有一个3000x1的Matlab 搜索向量和返回索引的单元格数组,matlab,search,vector,cell-array,Matlab,Search,Vector,Cell Array,我有一个3000x1的单元格不同长度的向量数组,正在寻找一种方法来搜索所有向量,并返回该数字第一次和最后一次出现的单元格索引 因此,我的数据如下所示: [1] [1 2] [1 2] [3] [6 7 8 9] etc 当我搜索数字1时,我希望我的结果如下所示: ans = 1 3 所有的索引(例如,1的[1 2 3])也会起作用,尽管上面的方法会更好。到目前为止,我无法解决这两个问题 我试过了 cellfun(@(x) x==1, positions, 'UniformOutput',
单元格
不同长度的向量数组,正在寻找一种方法来搜索所有向量,并返回该数字第一次和最后一次出现的单元格
索引
因此,我的数据如下所示:
[1]
[1 2]
[1 2]
[3]
[6 7 8 9]
etc
当我搜索数字1时,我希望我的结果如下所示:
ans = 1 3
所有的索引(例如,1的[1 2 3]
)也会起作用,尽管上面的方法会更好。到目前为止,我无法解决这两个问题
我试过了
cellfun(@(x) x==1, positions, 'UniformOutput', 0)
这将返回一个逻辑数组,有效地将我放回第1方。我尝试过使用find(cellfun…
,但是对于类型为“cell”的输入参数,这会产生错误未定义的函数“find”。我能找到的大部分帮助是在单元格数组中搜索字符串。我需要将所有向量转换为字符串才能工作吗
C = {[1]
[1 2]
[1 2]
[3]
[6 7 8 9]}; %// example data
N = 1; %// sought number
ind = cellfun(@(v) any(v==N), C); %// gives 1 for cells which contain N
first = find(ind,1);
last = find(ind,1,'last');
result = [ first last ];