通过与另一个单元格比较来从单元格获取索引值
Index values from cell by comparing with another cell
我有 2 个单元格,B 和 M。 B 是 nx1 单元格,M 是 nx2 单元格。 B 中的某些值是空白。其余同M{:,2}。像这样:
B=
'beta001.img'
'beta002.img'
[]
[]
[]
'beta006.img'
[]
...
和
M=
67 'beta001.img'
89 'beta002.img'
34 'beta003.img'
14 'beta004.img'
15 'beta005.img'
32 'beta006.img'
...
我想创建一个单元格 C,其中包含 M 的第一列中的值,但前提是第二列中的相应值与 B 中的相应值匹配。基本上,使用上面的例子,C 应该是:
67
89
32
我可以看到至少有两个选项。最简单的方法是对 B 和 M 进行 horzcat,然后删除所有包含空白的行。我试过了:
C=horzcat(B,M);
C=R(~cellfun('isempty',C));
不幸的是,这没有用。由于我想学习如何使用 ismember,第二个选择是使用它来比较 B 和 M。有人可以帮助我吗?
您的方法已更正:
这将连接矩阵。然后提取没有任何空条目的行,然后提取结果的第二列。
C = horzcat(B,M);
C = C(~any(cellfun('isempty',C),2),:);
C = cell2mat(C(:,2));
但是您不需要连接元胞数组来实现您正在做的事情。
简化方法:
你可以只找到B不为空的行,然后取所述对应行的M
的第一列。
isBnotEmpty = ~cellfun(@isempty, B);
C = cell2mat(M(isBnotEmpty,1));
我有 2 个单元格,B 和 M。 B 是 nx1 单元格,M 是 nx2 单元格。 B 中的某些值是空白。其余同M{:,2}。像这样:
B=
'beta001.img'
'beta002.img'
[]
[]
[]
'beta006.img'
[]
...
和
M=
67 'beta001.img'
89 'beta002.img'
34 'beta003.img'
14 'beta004.img'
15 'beta005.img'
32 'beta006.img'
...
我想创建一个单元格 C,其中包含 M 的第一列中的值,但前提是第二列中的相应值与 B 中的相应值匹配。基本上,使用上面的例子,C 应该是:
67
89
32
我可以看到至少有两个选项。最简单的方法是对 B 和 M 进行 horzcat,然后删除所有包含空白的行。我试过了:
C=horzcat(B,M);
C=R(~cellfun('isempty',C));
不幸的是,这没有用。由于我想学习如何使用 ismember,第二个选择是使用它来比较 B 和 M。有人可以帮助我吗?
您的方法已更正:
这将连接矩阵。然后提取没有任何空条目的行,然后提取结果的第二列。
C = horzcat(B,M);
C = C(~any(cellfun('isempty',C),2),:);
C = cell2mat(C(:,2));
但是您不需要连接元胞数组来实现您正在做的事情。
简化方法:
你可以只找到B不为空的行,然后取所述对应行的M
的第一列。
isBnotEmpty = ~cellfun(@isempty, B);
C = cell2mat(M(isBnotEmpty,1));