MATLAB:有条件地将矩阵元素分成两个独立的单元阵列

时间:2013-03-12 07:33:46

标签: matlab matrix indexing conditional cells

矩阵有2行和几列,第一列包含1和0的交替字符串。我想使用这个二进制文件作为决定将其下面的信息复制到两个单元格数组之一。我知道这可以通过使用IF条件迭代或使用while循环来完成,但是我无法清理它。

例如,

mat = [ 1 1 1 0 0 1 1 0 0 0 0 1 1 1 ;...
        1 2 3 4 5 6 7 1 2 3 4 5 6 7 ]

我想输出两个单元格数组,一个用于'1s',另一个用于'0s':

1 2 3
6 7
5 6 7

4 5
1 2 3 4 

1 个答案:

答案 0 :(得分:0)

我确信有几种方法可以做到这一点。一个人可能正在使用循环;但是,您也可以使用内置的查找功能。以下是基于您的示例的示例解决方案。

'1s', 在这里,我们希望从第一行得到“1”的索引。

on_array= mat(2, find(mat(1,:)));
  

或@ H.Muster建议

on_array= mat(2, mat(1,:)==1);

对于'0', 在这里,我们希望从第一行得到“0”的索引。

off_array = mat(2, find(mat(1,:)==0));
  

或@ H.Muster建议

off_array= mat(2, mat(1,:)==0);

对于输出格式(您想要的格式),我相信您知道该怎么做。祝你好运。