相关疑难解决方法(0)

在由向量索引位置创建一个零填充二维数组与那些

我正在尝试向量化以下MATLAB操作:

给定具有索引的列向量,我想要一个具有相同行数和固定列数的矩阵.矩阵用零初始化,并包含索引指定位置的矩阵.

这是我已经写过的脚本示例:

y = [1; 3; 2; 1; 3];
m = size(y, 1);

% For loop
yvec = zeros(m, 3);
for i=1:m
    yvec(i, y(i)) = 1;
end
Run Code Online (Sandbox Code Playgroud)

期望的结果是:

yvec =

 1     0     0
 0     0     1
 0     1     0
 1     0     0
 0     0     1
Run Code Online (Sandbox Code Playgroud)

没有for循环可以实现相同的结果吗?我试过这样的事情:

% Vectorization (?)
yvec2 = zeros(m, 3);
yvec2(:, y(:)) = 1;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

matlab vectorization octave

8
推荐指数
2
解决办法
816
查看次数

标签 统计

matlab ×1

octave ×1

vectorization ×1