[已解决] 如何识别cell中所包含特定元素的矩阵

[复制链接]
913841487 发表于 2021-9-14 16:34:48
本帖最后由 913841487 于 2021-9-14 16:46 编辑

假设B={2;3;4;[2;3];[2;4];[3;4];[2;3;4]},请问如何找到B中含有元素2的矩阵呢(2,[2;3],[2;4],[2;3;4])。

最佳答案


1119093102 发表于 2021-9-15 09:05:47
913841487 发表于 2021-9-14 20:03
你好,首先感谢你的解答,但目前学校电脑配备的都是matlb2014a,似乎没有contains函数,请问能否用for循 ...
  1. bValue = B(cellfun(@(x) ~isempty(find(x==2, 1)), B))
复制代码

貌似这个更好理解,以前用过contains习惯用了,但是这个优化更简洁

4 条回复


1119093102 发表于 2021-9-14 16:50:15
本帖最后由 1119093102 于 2021-9-14 16:51 编辑

不行,你是要变成矩阵输出做不到,可以做到cell输出,
  1. bValue = B(contains(cellfun(@(x) num2str(find(x==2, 1)), B, 'UniformOutput', false), '1')); % 有'1'代表是存在2的地方
复制代码

913841487 发表于 2021-9-14 20:03:05
1119093102 发表于 2021-9-14 16:50
不行,你是要变成矩阵输出做不到,可以做到cell输出,

你好,首先感谢你的解答,但目前学校电脑配备的都是matlb2014a,似乎没有contains函数,请问能否用for循环或其他方法来解决呢,期待你的回复。

1119093102 发表于 2021-9-15 09:05:47
913841487 发表于 2021-9-14 20:03
你好,首先感谢你的解答,但目前学校电脑配备的都是matlb2014a,似乎没有contains函数,请问能否用for循 ...
  1. bValue = B(cellfun(@(x) ~isempty(find(x==2, 1)), B))
复制代码

貌似这个更好理解,以前用过contains习惯用了,但是这个优化更简洁
回复此楼

913841487 发表于 2021-9-16 12:05:23
1119093102 发表于 2021-9-15 09:05
貌似这个更好理解,以前用过contains习惯用了,但是这个优化更简洁

问题已解决,非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表