0

一个矩阵有 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 
4

1 回答 1

0

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

对于“1s”,在这里,我们想从第一行获取带有“1”的索引。

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

或按照@H.Muster 的建议

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

对于“0s”,在这里,我们想从第一行获取带有“0”的索引。

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

或按照@H.Muster 的建议

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

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

于 2013-03-12T07:49:41.533 回答