Matlab:迭代循环

时间:2017-07-21 12:30:00

标签: matlab for-loop wave

我有一个wav信号,我在缓冲区s中读取样本。我想保存一个 新缓冲区x位于10位置,20,30..110位置的样本。 我怎样才能做到这一点?我必须编写一个for循环但是如何编写contator?

2 个答案:

答案 0 :(得分:1)

不确定缓冲区是什么意思,但是这里是如何从数组中获取该信息的。给定s = 1:107,您可以通过发出命令来获取从位置10开始的元素:

b = s(10:10:end);

现在,b等于10 20 30 40 50 60 70 80 90 100

答案 1 :(得分:0)

  

我想在新的缓冲区x中保存位于10位置,20,30..110位置的样本。我怎么能这样做?

x = s(10:10:110);

这也可行:

x = s(10*(1:11));

Houstanb的解决方案最好是你想要缓冲区中的每10个样本,而不是你所说的最多110个样本。

  

我必须编写一个for循环但是如何编写contator?

如果你 必须 写一个for循环,那么你可以试试这个:

x = nan(1,11);
for k=1:11
    x(k) = s(k*10);
end

但从MATLAB的角度来看,这不是一个很好的解决方案,其中首选矢量化。