【问题标题】:How to change elements in matrices using MATLAB如何使用 MATLAB 更改矩阵中的元素
【发布时间】:2012-08-27 19:22:44
【问题描述】:

开始希望一个 7x4 二进制矩阵,我需要更改每列中的一个随机位来模拟错误。一直在尝试无济于事。

【问题讨论】:

    标签: matlab matrix simulation


    【解决方案1】:

    另一种可能性是在一次调用中创建 4 个随机数,并以矢量化方式分配:

    rowNumbers = randi(4,[1 4])
    A(rowNumbers,:) = ~A(rowNumbers,:);
    

    【讨论】:

      【解决方案2】:

      执行此操作的一个非常简单的方法是使用 for 循环。它可能不是 MATLAB 中最有效的方法,但考虑到您的数据集非常小,它可能已经足够了。

      遍历四列中的每一列。在每次迭代中,随机选择一个从 1 到 7 的数字来表示您选择更改的该列中的行。最后,翻转该行/列的位。下面的代码就是这样做的。假设“A”是一个7行4列的二进制矩阵

      for col=1:4;                  %// Iterate through each column
          row = ceil(7*rand());     %// Randomly chose a number from 1 to 7 to represent row
          A(row,col) = ~A(row,col); %// Flip the bit at the specified row/col
      end
      

      【讨论】:

      • row = randi(7) 将是此答案中第二行代码的更简单版本
      猜你喜欢
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多