我初始化了一个非常长的单元数组(向量?)
train_labels = cell(16218, 1);
这些内容将使用来自50个不同文件夹的文件进行填充,为确保文件在正确的位置被索引,我需要找到最后一个写入的cell数组的索引。
例如,在读取一个文件夹后,train_labels
中的索引已达到5406
。现在要从下一个文件夹中读取图像,它们必须保存到下一个索引位置,即5407
。为使其正常工作,我需要找到train_labels
中最后一个非空数组的位置。
由于简单的find(train_labels,1,'last')
无法在cell数组上运行。我使用了cellfun
但它也无法工作。这是我尝试过的:
cellfun(@find, train_labels, 'last')
Error using cellfun
Input #3 expected to be a cell array, was char instead.
希望能得到如何获取单元数组的最后一个索引的任何指导。
谢谢
bsxfun
也有特殊的代码路径来加速像plus
和times
这样的常见操作,但它只接受函数句柄。我敢打赌,它仍然对列在帮助中的函数有特殊处理,对于用户指定的句柄则进行通用处理。 - chappjccellfun
源代码,你会发现它们还有其他一些内置功能!尝试一下肯定很有趣! - Divakarcellfun('isempty'..)
可以找到所有为空的元素,所以取反符号(~)可以找到所有非空的元素。..1,'last'
可以得到最后一个匹配项。希望这样说得清楚明白! - Divakar