从单行代码matlab中预定义的数组元素

时间:2014-04-06 10:41:55

标签: arrays matlab function

如何从单行代码中创建预定义的数组元素,即我有以下数组序列,如何通过单行代码生成它,因为我想将其输入到函数参数中。它始终是0010以及4列和24行的序列。

我尝试了以下内容:

[0 0 0 1 :24]

我想要的输出:

                          [ 0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0,
                          0 0 1  0 ]

2 个答案:

答案 0 :(得分:2)

使用repmat按列复制数据以创建多行 -

repmat([0 0 1 0],24,1)

查看this了解更多复制数据的方法。

答案 1 :(得分:0)

您也可以使用矩阵乘法

ones( 24, 1 ) * [0 0 1 0]

使用tic - toc此方法似乎比repmat(在我的机器上)更快:

tic; 
for ii=1:100000, 
    repmat( [0 0 1 0], 24, 1 );
end;
toc, 
tic, 
for ii=1:100000, 
    ones(24,1)*[0 0 1 0];
end;
toc

结果是

  

经过的时间是1.090915秒。 // @ Divakar's method使用repmat
  经过的时间是0.163920秒。 //使用矩阵乘法