Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.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_Vector_Vectorization - Fatal编程技术网

MATLAB:快速创建索引向量

MATLAB:快速创建索引向量,matlab,vector,vectorization,Matlab,Vector,Vectorization,我有一个变量distr=[0310102];,我有一个变量full,它应该与I的分布时间I相反,对于所有I 在本例中,我希望: full=[2 2 2 3 5 5]; 因为Distric2=3,所以是3x2,依此类推 当然,我可以在for循环中完成: 但这是非常缓慢的。你知道一种快速的方法吗,使用MATLAB令人敬畏的面向数组的风格?谢谢 不确定,但也许这会奏效。我无法检查它,因为我目前没有MATLAB: full_tmp = arrayfun(@(i,n) i*ones(1,n),1:len

我有一个变量distr=[0310102];,我有一个变量full,它应该与I的分布时间I相反,对于所有I

在本例中,我希望:

full=[2 2 2 3 5 5];
因为Distric2=3,所以是3x2,依此类推

当然,我可以在for循环中完成:


但这是非常缓慢的。你知道一种快速的方法吗,使用MATLAB令人敬畏的面向数组的风格?谢谢

不确定,但也许这会奏效。我无法检查它,因为我目前没有MATLAB:

full_tmp = arrayfun(@(i,n) i*ones(1,n),1:length(distr),distr,'uniformoutput',false);
full = cat(2,full_tmp{:});

哦,是的,谢谢你!!您需要运行长度解码。按如下方式使用repelem:result=repelem1:numeldistr,distr;。或者查看其他方法的链接问题和答案。啊,这是正确的名称,我无法找到结果,因为我不知道如何调用此属性。谢谢,这很有帮助,特别是性能测试!
full_tmp = arrayfun(@(i,n) i*ones(1,n),1:length(distr),distr,'uniformoutput',false);
full = cat(2,full_tmp{:});