Adn*_*ala 3 matlab for-loop vectorization
y 是包含数字 1 到 10 的 5000 x 1 向量。我可以将 y 转换为 Y(5000 x 10 矩阵),使得
Y = zeros(5000,10);
for i = 1:5000
Y(i,y(i))=1;
end
Run Code Online (Sandbox Code Playgroud)
我可以在不使用 for 循环的情况下获得相同的结果吗?
使用的解决方案implicit expansion:
Y = y == 1:10;
Run Code Online (Sandbox Code Playgroud)
它创建了一个逻辑矩阵。如果你需要一个双矩阵,你可以写:
Y = double(y == 1:10);
Run Code Online (Sandbox Code Playgroud)