我初始化了一个很长的单元格数组(向量?)
train_labels = cell(16218, 1);
将使用来自50个不同文件夹的文件填充这些文件,以确保将文件索引到正确的位置,我需要写入的最后一个单元格数组的索引。
例如,读取一个文件夹后,索引train_labels
已达到5406
。现在要从下一个文件夹读取图像,必须将它们保存到下一个索引5407
。为此,我需要在中找到最后一个非空数组的位置train_labels
。
由于简单find(train_labels,1,'last')
不适用于单元阵列。我用过,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 Blog帖子中对此进行了详细讨论。
isempty
是内置的,因此似乎是一种优化的实现。其他内置插件是在2014A版本cellfun
是- ,'isreal'
,'islogical'
,'length'
,'ndims'
,'prodofsize'
,。'size'
'isclass'
我希望这些也是快速的实现。有关这些的更多信息,请参见其官方文档,可通过访问该文档>> help cellfun
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句