gpt4 book ai didi

arrays - 如何查找元胞数组中最后一个非空元素的索引

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:29 27 4
gpt4 key购买 nike

我初始化了一个很长的元胞数组(向量?)

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..),但我相信那一定更慢。这已在本 Undocumented MATLAB Blog post 中详细讨论。 .

isempty 是一个内置的,因此看起来是一个优化的实现。 2014A 版 cellfun 中可用的其他内置插件是 - 'isreal''islogical''length''ndims''prodofsize''size''isclass'。我希望这些也是快速实现。有关这些的更多信息可在其官方文档中找到,可通过 >> help cellfun 访问。

关于arrays - 如何查找元胞数组中最后一个非空元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532296/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com