0
我有两个矩阵A和B.A是长度为1000X1的数组,它由0和1组成,B也是相同的大小。现在B是以A为输入执行扫描操作的函数的输出。扫描只不过是在A的位置添加了零,所以B的值与A相似,除了1的一部分被替换为0之外。现在我的任务是填充B中的那些0值,这是在扫描操作后用随机二进制值替换的。我已经在这个真棒网站的用户帮助下完成了这项工作。而对于同样的代码是在这里在matlab中比较两个长度相同的不相似的向量
idx=strfind(B,[0 0 0 0]);
n=dec2bin(randi([0 15],[numel(idx) 1]),4) - '0';
idx=bsxfun(@plus, idx', (0:3));
xx = B;
xx(idx(:)) = n(:);
现在,这个功能也将更换已经存在于A.我想替换只有那些从1周之变到0的零的零,而不是那些0的哪些人在答案中已经为零。任何帮助将非常感激。
我应该在哪里在上面的函数中添加此代码!顺便谢谢你的回复! – Spaniard89
你应该在计算“B =扫描(A)”后立即执行该操作;“上面的代码将用随机二进制数字代替B的变化坐标。 – Oli
所以我不应该使用我上面发布的代码?你的这两行会做魔术吗?在扫描操作之后,随机零将出现在B中,而我只是希望那些零被替换为随机二进制值,而不是已经为零的那个!你能告诉我如何在功能上添加你的代码,将A和B作为输入,并将B的修改版本作为输出!非常感谢你提前! – Spaniard89