【发布时间】:2012-12-23 23:07:58
【问题描述】:
我正在使用一个元胞数组来包含 [row, col] 形式的 1x2 网格位置向量。
我想检查此元胞数组中是否包含另一个网格位置。
不幸的是,我当前的代码导致错误,我不太明白为什么:
in_range = ismember( 1, ismember({[player.row, player.col]}, proximity(:,1)) );
其中player.row 和player.col 是整数,proximity 的第一列是前面提到的网格位置元胞数组
我收到的错误是:
??? Error using ==> cell.ismember at 28
Input must be cell arrays of strings.
不幸的是,我无法找到有关以这种方式使用 ismember() 的任何信息,只能将元胞数组作为字符串或在每个元胞中使用单个整数而不是向量。
我曾考虑使用num2str() 和str2num() 进行转换,但由于我必须在转换之间执行计算,并且由于迭代次数的原因,代码将被循环(10,000 次循环,每个循环 4 次转换),因此方法似乎令人望而却步。
非常感谢您的帮助,谢谢
编辑:为什么ismember() 返回此错误?是否将元胞数组中的所有向量都视为字符串数组?
编辑:是否有比
更好/更有效的方法来确定返回的向量中是否有 1ismember( 1, ismember(...))?
【问题讨论】:
标签: matlab vector comparison grid-layout cell-array