Mat*_*Dog 4 matlab for-loop vectorization
这是一个简单的问题.以下嵌套for循环创建一个正弦波值数组.
N = 2^16;
for m = 1:10;
    for i = 1:N
        sine(m,i) = sin(2*pi*i./(8*2^m));
    end
end
看起来我应该能够在不使用for循环的情况下创建这个数组,但我尝试了各种语法并且总是收到错误消息.提前感谢任何见解.
你可以bsxfun像这样使用:    
sine = sin(bsxfun(@times, 2*pi*(1:2^16), 1./(8*2.^(1:10))' ));
请尝试以下方法:
ii = 1:2^16;
m  = [1./(2.^(1:10))].'% transpose
prefactor = 2 * pi / 8;
sine = sin(prefactor * m * ii);
我执行矩阵乘法A*B,其中a是列向量大小nrows,B是行向量大小ncols,得到的矩阵的大小为nrows x ncols.因此m是列向量和ii行向量.
| 归档时间: | 
 | 
| 查看次数: | 102 次 | 
| 最近记录: |