MatLab创建了一个999x1数组,前333个是1,后333个是2,后333个是3

MatLab创建了一个999x1数组,前333个是1,后333个是2,后333个是3,matlab,Matlab,我正在尝试创建一个用于错误检查的值数组。我漂亮地实现了一个贝叶斯分类器,但似乎无法创建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;

我正在尝试创建一个用于错误检查的值数组。我漂亮地实现了一个贝叶斯分类器,但似乎无法创建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

有什么好办法吗?

你在找这个吗

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

你在找这个吗

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

有几种可能的方法:

与ceil合作:

使用repmat:

克朗:


有几种可能的方法:

与ceil合作:

使用repmat:

克朗:

xEst = reshape(repmat([1:n], m, 1), 1, []);
xEst = kron(1:n, ones(1,m));