1
次のMATLABコードから "for"ループを削除しようとしています。このケースでは必要ではないことは分かっていますが、このケースを理解すれば、将来は本当に必要なより複雑なケースに同じ概念を適用できます。ループを削除する方法。 (ベクトル化)
clear all; close all; clc;
u = @(n) (n>=0)*1.0; % Step Function
n = -5:25;
x_a = zeros(size(n));
for m = 0:10 % The loop I want to remove
x_a = x_a + (((-1)^m)*u(-n+(2*m)))-(((-0.5)^(m+1))*(u(n-(2*m))));
end
figure(1);
stem(n,x_a);
grid;
xlabel('Sample Number');
ylabel('Amplitude x_a[n]');
ご協力いただきありがとうございます。
ありがとう! 1Dの配列の代わりに3D行列を使用する必要がある理由を説明できますか? –
@JonAnderDíezベクトル化の一般的な方法はありません。あなたは、望みの結果を得るために、さまざまな機能が適用できるデータを整理する方法を考えるだけです。間違いなく1Dアレイを使用できる可能性があります。私はちょうど三次元マトリックスの可能性を考えて –