【发布时间】:2012-08-27 19:22:44
【问题描述】:
开始希望一个 7x4 二进制矩阵,我需要更改每列中的一个随机位来模拟错误。一直在尝试无济于事。
【问题讨论】:
标签: matlab matrix simulation
开始希望一个 7x4 二进制矩阵,我需要更改每列中的一个随机位来模拟错误。一直在尝试无济于事。
【问题讨论】:
标签: matlab matrix simulation
另一种可能性是在一次调用中创建 4 个随机数,并以矢量化方式分配:
rowNumbers = randi(4,[1 4])
A(rowNumbers,:) = ~A(rowNumbers,:);
【讨论】:
执行此操作的一个非常简单的方法是使用 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) 将是此答案中第二行代码的更简单版本