Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 通过多次合并同一行向量来构建矩阵_Matlab_Matrix_Rows_Repeat_Tiling - Fatal编程技术网

Matlab 通过多次合并同一行向量来构建矩阵

Matlab 通过多次合并同一行向量来构建矩阵,matlab,matrix,rows,repeat,tiling,Matlab,Matrix,Rows,Repeat,Tiling,是否有matlab函数允许我执行以下操作 x=[1233] 然后基于x我想构建矩阵m=[1 2 2 3;1 2 2 3;1 2 2 3;1 2 2 3]您正在寻找函数: x = [1 2 2 3]; m = repmat(x,4,1); 您还可以使用索引来重复行: m = x(ones(4,1),:); 甚至外部产品: m = ones(4,1)*x; 并使用BSXFUN: m = bsxfun(@times, x, ones(4,1)) 您可以尝试使用vertcat,如下所示: x =

是否有matlab函数允许我执行以下操作

x=[1233]

然后基于
x
我想构建矩阵
m=[1 2 2 3;1 2 2 3;1 2 2 3;1 2 2 3]
您正在寻找函数:

x = [1 2 2 3];
m = repmat(x,4,1);
您还可以使用索引来重复行:

m = x(ones(4,1),:);
甚至外部产品:

m = ones(4,1)*x;
并使用BSXFUN:

m = bsxfun(@times, x, ones(4,1))

您可以尝试使用
vertcat
,如下所示:

x = [1 2 2 3];
m = vertcat(x,x,x,x);
甚至简单地说:

x = [1 2 2 3];
m = [x;x;x;x];
编辑:

对于x的倍数,可以执行以下操作:

x = [1 2 2 3];
m = [x;2*x;3*x];  %  [1 2 2 3; 2 4 4 6; 3 6 6 9]
编辑2:

对于m中任意数量的x

n = 3; % number of repetitions...
x = [1 2 2 3];
m = [];
for i=1:n
    m = [m;x];
end

如果我想构建
m=[1 2 2 3;2 4 4 6;3 6 9]
?使用BSXFUN解决方案:
m=BSXFUN(@times,x,(1:3))
如果我没记错的话,使用索引比使用repmat更快。但可读性也差得多。问题是我想传递一个具有倍数的参数。我想在for循环中这样做,连接原始向量的次数是不确定的。啊,你在问题中没有提到。。。(我编辑了我的答案)