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

时间:2014-10-23 22:32:55

标签: 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

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

2 个答案:

答案 0 :(得分:5)

有几种可能的方法:

  1. 使用ceil

    m = 999;
    n = 3;
    xEst = ceil((n/m:n/m:n));
    
  2. 使用repmat

    xEst = reshape(repmat([1:n], m, 1), 1, []);
    
  3. 使用kron

    xEst = kron(1:n, ones(1,m));
    

答案 1 :(得分:2)

你在找这个吗?

xEst = ones(999, 1);
xEst(334 : 666) = 2;
xEst(667 : end) = 3;