MatLab创建一个999x1第一个333的数组是1个下一个333是2个最后333个是3个

KDe*_*ker 1 matlab

我正在尝试为错误检查创建一个值数组我已经精美地实现了baysian分类器但似乎无法创建1x999数组.

我认为我现在所拥有的代码很清楚

zEst = [1:999]; % Supposed to be an initalization
for i=1:N
    if(i < 334)
        xEst(i) = 1;
    elseif(i < 667)
        xEst(i) = 2;
    else
        xEst(i) = 3;
    end
end
Run Code Online (Sandbox Code Playgroud)

有没有办法很好地做到这一点?

Lui*_*ndo 5

有几种可能的方法:

  1. ceil:

    m = 999;
    n = 3;
    xEst = ceil((n/m:n/m:n));
    
    Run Code Online (Sandbox Code Playgroud)
  2. repmat:

    xEst = reshape(repmat([1:n], m, 1), 1, []);
    
    Run Code Online (Sandbox Code Playgroud)
  3. kron:

    xEst = kron(1:n, ones(1,m));
    
    Run Code Online (Sandbox Code Playgroud)