マトリックス (size_out、size_in) を入力する必要があります。私は同様の問題を探していますが、それらの解決策はどれも私を助けてくれませんでした.
初めての試みでした
for k= 0:size_out-1
for n= 0:size_in-1
part1= sincd(2*No-2, 2*size_in, (k+1/2)/factor -n -1/2);
part3= sincd(2*No-2, 2*size_in, (k+1/2)/factor +n +1/2);
part2= cos( (pi/(2*size_in) ) * ( (k+1/2)/factor -n -1/2) );
part4= cos( (pi/(2*size_in) ) * ( (k+1/2)/factor +n +1/2) );
A(k+1,n+1)= part1*part2+part3*part4;
end
end
内側のループを削除して、このコードをベクトル化しました。
for k= 0:size_out-1
A(k+1,1:size_in)= ...
sincd(2*No-2, 2*size_in, (k+1/2)/factor -(0:size_in-1) -1/2 ) .* ...
cos( pi/(2*size_in) * ( (k+1/2)/factor -(0:size_in-1) -1/2 ) ) + ...
sincd(2*No-2, 2*size_in, (k+1/2)/factor +(0:size_in-1) +1/2 ) .* ...
cos( pi/(2*size_in) * ( (k+1/2)/factor +(0:size_in-1) +1/2 ) );
end
私の質問は: 外側のループをベクトル化する方法は?
reshape&permute または bsxfun の組み合わせがここで役立つかどうかはわかりません。
前もって感謝します。