Matlab:迭代循环
Posted
技术标签:
【中文标题】Matlab:迭代循环【英文标题】:Matlab: iterative loop [closed] 【发布时间】:2017-07-21 12:30:00 【问题描述】:我有一个 wav 信号,我在缓冲区 s 中读取样本。我想保存在 新缓冲区 x 位于 10 位置、20、30..110 位置的样本。 我怎样才能做到这一点?我必须编写一个 for 循环,但我该如何编写接触器?
【问题讨论】:
【参考方案1】:不确定缓冲区是什么意思,但这是从数组中获取该信息的方法。给定s = 1:107
,您可以通过发出以下命令获取从位置10
开始的元素:
b = s(10:10:end);
现在,b
等于 10 20 30 40 50 60 70 80 90 100
【讨论】:
【参考方案2】:我想将位于 10、20、30..110 位置的样本保存在新缓冲区 x 中。我该怎么做?
x = s(10:10:110);
这也可以:
x = s(10*(1:11));
如果您希望缓冲区中的每 10 个样本(而不是您所说的最多 110 个),Houstanb 的解决方案是最好的。
我必须写一个 for 循环,但我该如何写接触器?
如果您必须编写一个 for 循环,那么您可以试试这个:
x = nan(1,11);
for k=1:11
x(k) = s(k*10);
end
但是从 MATLAB 的角度来看,这不是一个很好的解决方案,因为向量化是首选。
【讨论】:
以上是关于Matlab:迭代循环的主要内容,如果未能解决你的问题,请参考以下文章