【问题标题】:Filling a matrix randomnly随机填充矩阵
【发布时间】:2017-06-30 03:20:42
【问题描述】:

我有以下代码生成一个大小为 (i*2,j) 的矩阵,随机填充 (0,1)

i=input('i:');
j=input('j:');
B=randi([0 1], i*2,j); 

我现在想在前一个矩阵的中间只用零填充 4 线(位置并不重要)。最快的方法是什么 谢谢你 。

【问题讨论】:

  • 在这种情况下,最好在您询问的操作之前和之后提供一个小矩阵示例。

标签: matlab matrix


【解决方案1】:

如果按行表示行,那么这应该可以:

B(5:8,:) = 0;
% Where 5:8 can be any values you want, this is just an example

【讨论】:

    【解决方案2】:

    这应该通过在中间迭代 4 行来工作:

    for k = i-2:i+2
        B(k,:) = 0
    end
    

    或者以下应该是更快的方法:

    B(i-2:i+2, :) = 0 
    

    给定 i*2 是您的行数,因此 i-2 到 i+2 应该是中间四行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2012-03-06
      • 2014-07-01
      • 2018-08-27
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多