2016-05-16 66 views
-1

所以我有这样的矩阵:转移的具体内容在逻辑阵列

0  1  0 
1  0  0 
0  0  0 
0  0  1 
0  0  1 
0  1  0 
0  1  1 

我不知道是什么声明(S)我要写改变底行只使之成为:

0  1  0 
1  0  0 
0  0  0 
0  0  1 
0  0  1 
0  1  0 
1  0  1 

具体而言,我想只交换第7行的第1列和第2列。

不仅如此,我还想编写一个语句,在一行中找到相邻的1的值,例如1 1 0或0 0 0 1 1 0,然后应用相同的切换。

+1

这太不清楚了,任何有用的答案都需要一些关于帽子变化的信息。您是否试图左移底部行?在这种情况下,看看MATLAB的'circshift'函数。为了隔离底行,假设你的矩阵被称为'M',使用'M(end,:)',例如'M(end,:) = circshift(M(end,:),1)'' – Dan

+0

,我想只交换第7行的第一列和第二列。不仅如此,我还想编写一条语句,在1 1 0或0 0 0 1 1 0等行中找到相邻的1的值,然后应用相同的切换。 thnks堆。 –

+0

对于第二种情况,相同的切换意味着什么?你想交换第一个'0'和第二个'0'?如果你问的是如何交换矩阵的两个元素,那么我认为你的问题不是主题,而是过于具体(老实说,完全无关紧要)。但Drorco的回答完全回答你为什么不接受他? – Dan

回答

1

假设变量mat表示您的矩阵。使用:

mat(7,[1,2]) = mat(7,[2,1]); 

其中7指定要执行交换的行,1和2是要交换的列。

+0

嗨droco,这将工作。但是,我想写一个声明,发现任何1的值彼此相邻。这是因为它是更大功能的一部分,我无法每次都手动找到它们。是否有一个换位组合让我只交换第五排的第一和第二列? thnks堆 –

+0

第7行,对不起。 –

+0

只需写7而不是结束,我更新了我的答案。它对你有用吗? – drorco