当前位置:  开发笔记 > 编程语言 > 正文

在MATLAB中反表制函数

如何解决《在MATLAB中反表制函数》经验,为你挑选了1个好方法。

我有一个freq频率数组和另一个val有值的数组.

val =[1 3 5 7];    
freq=[2 3 3 2];

我想得到阵列result.

result=[1 1 3 3 3 5 5 5 7 7];

我试图获得的方法之一result是:

freq=[2 3 3 2];
val=[1 3 5 7];
result=[];
for i=1:length(val);
    result=[result repmat(val(i),1,freq(i))];
end

它可以工作,但是对于大型阵列,如果我摆脱for-loop,我希望获得一些性能提升.这有什么内置功能吗?你会如何计算result大型阵列?



1> Mikhail_Sam..:

这可以这样做:

val = [1 3 5 7]
freq = [2 3 3 2]
res = repelem(val, freq)

res =

 1     1     3     3     3     5     5     5     7     7

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有