根据条件填充Octave矩阵

时间:2016-02-01 03:07:58

标签: matlab matrix octave

我有一个带索引的列向量。

a = [10, 10, 10, 5, 5, 3, 3]

我想创建一个带有零的7x10矩阵,但每行有一列为1,该列的位置由向量a中的值确定。

现在我正在做以下事情:

for i = 1:length(a)
    b(i, a(i)) = 1;
end

它做对了:

b =

   0   0   0   0   0   0   0   0   0   1
   0   0   0   0   0   0   0   0   0   1
   0   0   0   0   0   0   0   0   0   1
   0   0   0   0   1   0   0   0   0   0
   0   0   0   0   1   0   0   0   0   0
   0   0   1   0   0   0   0   0   0   0
   0   0   1   0   0   0   0   0   0   0

但是我想知道是否有一个函数或语法糖允许我在没有循环的情况下执行它。

我必须做很多地方,有时候矩阵很大,我更喜欢没有循环。

0 个答案:

没有答案