Matlab中矢量的快速生成
我试图在MATLAB中创建一个包含30个相同值组件的列向量 当然我会写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
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);