【问题标题】:every other matching element in matrix MATLAB矩阵MATLAB中的所有其他匹配元素
【发布时间】:2013-04-11 23:44:12
【问题描述】:

我有一个包含 2 个值的矩阵,例如:

[ 1  1  1  1  1  0  0  0  1  1  0  0  0 
  0  0  0  0  1  1  1  1  0  0  0  1  1 ]

我想将一行中的所有其他元素从“1”更改为 0, 所以输出将是:

[ 0  1  0  1  0  0  0  0  1  0  0  0  0
  0  0  0  0  1  0  1  0  0  0  0  1  0 ]

【问题讨论】:

  • 不清楚你如何定义所有其他元素,例如在第 1 行,前 2 个元素都是 1,你希望第一个设置为 0,在第 2 行最后一个2 个元素都是 1,您想将第二个设置为 0。?

标签: matlab matrix


【解决方案1】:

如果你的矩阵是m 那么你可以这样做:

ind=find(m(:)==1);
m(ind(1:2:end))=0;

【讨论】:

  • 感谢您的建议,但我需要每隔一个“1”切换,同时不影响数组的其余部分。
  • 此解决方案在垂直方向上每隔一个设置为零,这意味着该行为并非完全在您的控制之下
  • @user2296342 例如,尝试使用m = [1 1 1 1 1 0 0 0 1 1 0 0 0; 0 0 0 1 1 1 1 0 0 0 1 1 0]; 输出是否符合您的预期?
  • 他回答的方式正是我所要求的答案,虽然我试图将这个随机化好一点,但我会弄清楚那部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-17
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多