Matlab中矢量的快速生成

Matlab中矢量的快速生成,matlab,Matlab,我试图在MATLAB中创建一个包含30个相同值组件的列向量 当然我会写 v = [1;1;1;1;1;1;...;1] 有30个1,但在阅读了一本MATLAB教科书并在线查看之后,我还没有找到一种方法,可以用一个表达式来简化这个过程,该表达式表示要在某个特定值中输入多少值(就像在numpy中一样) 在MATLAB中有这样做的方法吗?您可以这样做: v = some_value .* ones(1,count); // Row vector 或 其中,some_value是要初始化向量的值c

我试图在MATLAB中创建一个包含30个相同值组件的列向量

当然我会写

 v = [1;1;1;1;1;1;...;1]
有30个1,但在阅读了一本MATLAB教科书并在线查看之后,我还没有找到一种方法,可以用一个表达式来简化这个过程,该表达式表示要在某个特定值中输入多少值(就像在numpy中一样)

在MATLAB中有这样做的方法吗?

您可以这样做:

v = some_value .* ones(1,count); // Row vector


其中,
some_value
是要初始化向量的值
count
是要生成的值的数量。

另一种方法是

v_row = repmat(some_value, 1, count);


其中,
some_value
是要初始化向量的值
count
是要生成的值的数量。

使用ones函数:
ones(30,1)
如果目标是速度,那么如果您实际上正在分配一个包含所有值的数组,那么您可能只想使用
ones
。如果它是其他的东西,比如
3
,那么
0(30,1)+3
可能会更快。更多的细节和细节。丹的评论做了我需要做的,但谢谢你的概括。工作完美@用户3239567。。如果答案能解决问题,你可以接受。:)问题说“快”,所以,
v=some_值+零(1,count)将适用于除可能
1
之外的所有内容。
v_row = repmat(some_value, 1, count);
v_column = repmat(some_value, count, 1);