簡體   English   中英

如何查找單元格數組中最后一個非空元素的索引

[英]How to find index of the last non-empty element in a cell array

我初始化了一個很長的單元格數組(向量?)

train_labels = cell(16218, 1);

這些將使用來自50個不同文件夾的文件填充,以確保文件在正確的位置編入索引,我需要寫入的最后一個單元格數組的索引。

例如,在讀取一個文件夾后, train_labels的索引已達到5406 現在要從下一個文件夾中讀取圖像,必須將它們保存到5407的下一個索引。 為了完成這項工作,我需要在train_labels找到最后一個非空數組的train_labels

由於簡單的find(train_labels,1,'last')不適用於單元陣列。 我使用過cellfun但是也cellfun 這是我試過的:

cellfun(@find, train_labels, 'last')
Error using cellfun
Input #3 expected to be a cell array, was char instead.

非常感謝有關如何獲取單元格數組的最后一個索引的任何指導。

謝謝

使用cellfun'isempty'選項-

last_non_empty_index = find(~cellfun('isempty',train_labels),1,'last')

你也可以使用cellfun(@isempty..) ,但我相信一定要慢一點。 這篇未記載的MATLAB博客文章已對此進行了詳細討論。

isempty是一個內置的,因此似乎是一個優化的實現。 2014A版cellfun中提供的其他內置插件有 - 'isreal''islogical''length''ndims''prodofsize''size''isclass' 我希望這些也是快速實現。 有關這些的更多信息,請參見官方文檔,可通過>> help cellfun訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM